scala 基本类型和操作

基本类型和操作
========================
类型说明,与java一致
值类型 范围
Byte 8位有符号补码整数(-27~27-1)
Short 16位有符号补码整数(-215~215-1)
Int 32位有符号补码整数(-231~231-1)
Long 64位有符号补码整数(-263~263-1)
Char 16位无符号Unicode字符(0~216-1)
String 字符序列
Float 32位IEEE754单精度浮点数
Double 64位IEEE754单精度浮点数
Boolean true或false

特殊字符:
文本 含义
\n 换行(\u000A)

\b 回退(\u0008)

\t 制表符(\u0009)

\f 换页(\u000C)

\r 回车(\u000D)

\" 双引号(\u0022)

\‘ 单引号(\u0027)

\\ 反斜杠(\u005C)

=======================================

符号文本
符号文本被写成‘<标识符>,这里<标识符>可以是任何字母或数字的标识符。
如: var a = ‘cymbal

============================================
操作符和方法
任何方法都可以是操作符
与中缀操作符操作符带后两个操作数,一个在左一个在右相反,前缀和后缀操作符都是一元:unary的:它们仅带一个操作数
可以当作前缀操作符用的标识符只有+,-,!和~

后缀操作符是不用点或括号调用的不带任何参数的方法
Scala里,你可以舍弃方法调用的空括号。例外就是如果方法带有副作用就加上括号,如println(),不过如果方法没有副作用就可以去掉括号,如String上调用的toLowerCase:
================================
数学运算
你可以通过中缀操作符,加号(+),减号(-),乘号(*),除号(/)和余数(%),在任何数类型上调用数学方法 , scala中的基础运算与java一致
scala> 1.2 + 2.3
res6: Double = 3.5
scala> 3 - 1
res7: Int = 2
scala> ‘b‘ - ‘a‘
res8: Int = 1
scala> 2L * 3L
res9: Long = 6
scala> 11 / 4
res10: Int = 2
scala> 11 % 4
res11: Int = 3
scala> 11.0f / 4.0f
res12: Float = 2.75
scala> 11.0 % 4.0
res13: Double = 3.0

========================================
关系和逻辑操作
你可以用关系方法:大于(>),小于(<),大于等于(>=)和小于等于(<=)比较数类型,像等号操作符那样,产生一个Boolean结果。另外,你可以使用一元操作符!(unary_!方法)改变Boolean值
scala> 1 > 2
res16: Boolean = false
scala> 1 < 2
res17: Boolean = true
scala> 1.0 <= 1.0
res18: Boolean = true
scala> 3.5f >= 3.6f
res19: Boolean = false
scala> ‘a‘ >= ‘A‘
res20: Boolean = true
scala> val thisIsBoring = !true
thisIsBoring: Boolean = false
scala> !thisIsBoring
res21: Boolean = true

scala> val toBe = true
toBe: Boolean = true
scala> val question = toBe || !toBe
question: Boolean = true
scala> val paradox = toBe && !toBe
paradox: Boolean = false

===================================

对象相等性
scala> List(1, 2, 3) == List(1, 2, 3)
res27: Boolean = true
scala> List(1, 2, 3) == List(4, 5, 6)
res28: Boolean = false
scala> List(1, 2, 3) == null
res31: Boolean = false
scala> null == List(1, 2, 3)
res32: Boolean = false
===== ===== ====
scala> ("he" + "llo") == "hello"
res33: Boolean = true
=== 比较2个不同的对象
scala> 1 == 1.0
res29: Boolean = true

基本类型只能用==,!=, >,< 进行比较, 但是引用类型是用eq,ne,== , !=进行比较:

Scala的==与Java的有何差别 Java里的既可以比较原始类型也可以比较参考类型。对于原始类型,Java的==比较值的相等性,如Scala。然而对于参考类型,Java的==比较了参考相等性:reference equality,也就是说这两个变量是否都指向于JVM堆里的同一个对象。Scala也提供了这种机制,名字是eq。不过,eq和它的反义词,ne,仅仅应用于可以直接映射到Java的对象。
========================================
scala中的优先级和关联性。

(所有其他的特殊字符)
* / %
+ -
:
= !
< >
&
^
|
======================================
富包装器
8 到目前为止,你应该能指出给出的这段代码,Scala编译器会调用成(bills.!*&^%~(code)).!()。
表格5.4 一些富操作
代码 结果
0 max 5 5
0 min 5 0
-2.7 abs 2.7
-2.7 round -3L
1.5 isInfinity false
(1.0 / 0) isInfinity true
4 to 6 Range(4, 5, 6)
"bob" capitalize "Bob"
"robert" drop 2 "bert"

富包装类
基本类型 富包装
Byte scala.runtime.RichByte
Short scala.runtime.RichShort
Int scala.runtime.RichInt
Long scala.runtime.RichLong
Char scala.runtime.RichChar
String scala.runtime.RichString
Float scala.runtime.RichFloat
Double scala.runtime.RichDouble
Boolean scala.runtime.RichBoolean

时间: 2024-11-02 08:49:09

scala 基本类型和操作的相关文章

Scala编程--基本类型和操作

如果你熟悉Java,你会很开心地发现Java基本类型和操作符在Scala里有同样的意思.然而即使你是一位资深Java开发者,这里也仍然有一些有趣的差别使得本章值得一读.因为本章提到的一些Scala的方面实质上与Java相同,我们插入了一些注释,Java开发者可以安全跳过,以加快你的进程.本章里,你会获得Scala基本类型的概观,包括String和值类型Int,Long,Short,Byte,Float,Double,Char还有Boolean.你会学到可以在这些类型上执行的操作,包括Scala表

scala编程(五)——基本类型和操作

文本 文本是直接在代码里写常量值的一种方式以.在Scala中并不显式的使用Int或float,而是以文本的方式写成 val 变量. 如果整数文本结束于 L 或者 l,就是 Long 类型,否则就是 Int 类型. 如果浮点数文本以F或f结束,就是Float类型的,否则就是Double类型的. 可选的,Double浮点数文本也可以D或d结尾. 字符文本可以是在单引号之间的任何 Unicode 字符 def main(args: Array[String]): Unit = { val l = 1l

JavaScript基本类型和引用类型的值

JS变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型指的是简单的数据段,而引用类型值那些由多个值构成的对象: 在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.JS有5种基本数据类型:Undefined, Null,Boolean,Number和String.这5种基本数据类型是按值访问的.因为可以操作保存在变量中的实际的值. 引用类型的值保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间.

javascript 数据类型(基本类型和引用类型的定义和区别)

ECMAStript变量包含两种不同类型的值,基本类型和引用类型. 基本类型:指的就是保存在栈内存中的简单数据段. 引用类型:指的是那些保存在堆内存中的对象,换句话说,就是变量名实际上是一个指针,而这个指针指向的位置,就是保存对象的位置. 两种不同的访问方式 基本类型:按值访问,操作的是它们实际的值. 引用类型:按引用访问,当查询时,我们需要先从栈中读取内存地址,然后按照指针所指向的地方,找到堆内存里面的值. 基本类型 基本的数据类型有:`undefined,boolean,number,str

Javascript中的基本类型和引用类型

一.基本类型和引用类型概述 js中数据类型的值包括:基本类型值和引用类型值 基本数据类型:undefined;null;boolean;number;string 引用类型值:保存在内存中,js不允许直接访问内存位置,因此时操作引用而不是实际对象 二.如何检测数据类型 1.基本数据类型的检测:使用typeof var s = "AAA"; alert(typeof s); //返回string `     2.引用类型(对象类型)检测:使用instanceof alert(person

基本类型和引用类型

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; min-height: 1

JS基本类型和引用类型的值

JS中可以把变量分成两部分,基本类型和引用类型. 基本类型比较简单,包括:Undefined.Null.Boolean.Number和String,基本类型值就是简单的数据段:引用类型值可能由多个值构成的对象. 引用类型值保存在内存中,而JS是不能直接访问内存的,所以对于引用类型,操作的不是实际的对象而是对象的引用. 注:string在ECMAScript中不是引用类型,和其他许多语言不同. 接下来主要说明引用类型值的一些问题. 1.动态属性. JS中对象的属性可以动态的添加并且赋值的,比如:

变量——基本类型和引用类型的值

基本类型和引用类型的值 一.综述 ECMAScript变量可能包含两种不同的数据类型的值:基本类型值和引用类型值. 基本类型值是指简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在给一个变量赋值时,解析器必须确定这个值是基本类型值还是引用类型值. 5种基本数据类型(Undefined.Null.Boolean.Number.String)是按值访问的,因此可以操作保存在变量中实际的值. 引用类型的值是保存在内存中的对象.与其他语言不同,JavaScript不允许直接访问内存中的位置也就

《JavaScript高级程序设计》读书笔记 ---基本类型和引用类型的值

变量.作用域和内存问题 基本类型和引用类型的值ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值.第3 章讨论了5 种基本数据类型:Undefined.Null.Boolean.Number 和String.这5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值.引用类型的值是保存在内存中的对象.与其他语言不同,J