Scala 系列(二)—— 基本数据类型和运算符
一、数据类型1.1 类型支持Scala 拥有下表所示的数据类型,其中 Byte、Short、Int、Long 和 Char 类型统称为整数类型,整数类型加上 Float 和 Double 统称为数值类型。Scala 数值类型的取值范围和 Java 对应类型的取值范围相同。
1.2 定义变量Scala 的变量分为两种,val 和 var,其区别如下:
scala> val a=1 a: Int = 1 scala> a=2 <console>:8: error: reassignment to val // 不允许重新赋值 scala> var b=1 b: Int = 1 scala> b=2 b: Int = 2 1.3 类型推断在上面的演示中,并没有声明 a 是 Int 类型,但是程序还是把 a 当做 Int 类型,这就是 Scala 的类型推断。在大多数情况下,你都无需指明变量的类型,程序会自动进行推断。如果你想显式的声明类型,可以在变量后面指定,如下: scala> val c:String="hello scala" c: String = hello scala 1.4 Scala解释器在 scala 命令行中,如果没有对输入的值指定赋值的变量,则输入的值默认会赋值给 scala> 5 res0: Int = 5 scala> res0*6 res1: Int = 30 scala> println(res1) 30 二、字面量Scala 和 Java 字面量在使用上很多相似,比如都使用 F 或 f 表示浮点型,都使用 L 或 l 表示 Long 类型。下文主要介绍两者差异部分。 scala> 1.2 res0: Double = 1.2 scala> 1.2f res1: Float = 1.2 scala> 1.4F res2: Float = 1.4 scala> 1 res3: Int = 1 scala> 1l res4: Long = 1 scala> 1L res5: Long = 1 2.1 整数字面量Scala 支持 10 进制和 16 进制,但不支持八进制字面量和以 0 开头的整数字面量。 scala> 012 <console>:1: error: Decimal integer literals may not have a leading zero. (Octal syntax is obsolete.) 2.2 字符串字面量1. 字符字面量字符字面量由一对单引号和中间的任意 Unicode 字符组成。你可以显式的给出原字符、也可以使用字符的 Unicode 码来表示,还可以包含特殊的转义字符。 scala> 'u0041' res0: Char = A scala> 'a' res1: Char = a scala> 'n' res2: Char = 2. 字符串字面量字符串字面量由双引号包起来的字符组成。 scala> "hello world" res3: String = hello world 3.原生字符串Scala 提供了 scala> "hello tool" res4: String = hello ool scala> """hello tool""" res5: String = hello tool scala> """hello | world""" res6: String = hello world 2.3 符号字面量符号字面量写法为: 注意:具有相同 scala> val sym = 'ID008 sym: Symbol = 'ID008 scala> sym.name res12: String = ID008 2.4 插值表达式Scala 支持插值表达式。 scala> val name="xiaoming" name: String = xiaoming scala> println(s"My name is $name,I'm ${2*9}.") My name is xiaoming,I'm 18. 三、运算符Scala 和其他语言一样,支持大多数的操作运算符:
以上操作符的基本使用与 Java 类似,下文主要介绍差异部分和注意事项。 3.1 运算符即方法Scala 的面向对象比 Java 更加纯粹,在 Scala 中一切都是对象。所以对于 scala> 1+2 res14: Int = 3 scala> 1.+(2) res15: Int = 3 Int 类中包含了多个重载的 3.2 逻辑运算符和其他语言一样,在 Scala 中 3.3 赋值运算符在 Scala 中没有 Java 中的 scala> var a=1 a: Int = 1 scala> a+=1 scala> a res8: Int = 2 scala> a-=1 scala> a res10: Int = 1 3.4 运算符优先级操作符的优先级如下:优先级由上至下,逐级递减。 在表格中某个字符的优先级越高,那么以这个字符打头的方法就拥有更高的优先级。如 scala> 2<<2+2 res0: Int = 32 scala> 2<<(2+2) res1: Int = 32 3.5 对象相等性如果想要判断两个对象是否相等,可以使用 scala> 1==2 res2: Boolean = false scala> List(1,2,3)==List(1,3) res3: Boolean = true scala> 1==1.0 res4: Boolean = true scala> List(1,3)==null res5: Boolean = false scala> null==null res6: Boolean = true 参考资料
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |