数据类型
Unit:表示无值,等同于 Java 中的 void。用作不返回任何结果的方法的结果类型。Unit 只有一个实例值,写成 ()
Null:null 或空引用
Nothing:Nothing 类型在 Scala 的类层级的最低端;它是任何其他类型的子类型
Any:Any 是所有其他类的超类
AnyRef:AnyRef 类是 Scala 里所有引用类 (reference class) 的基类
定义变量
Scala 的变量分为两种,val 和 var,其区别如下:
- val : 类似于 Java 中的 final 变量,一旦初始化就不能被重新赋值;
- var :类似于 Java 中的非 final 变量,在整个声明周期内 var 可以被重新赋值;
/** *定义变量使用 var 或者 val 关键字 *语法: *var|val 变量名称 (: 数据类型) = 变量值 */
程序还是把 a 当做 Int 类型,这就是 Scala 的类型推断。在大多数情况下,你都无需指明变量的类型,程序会自动进行推断。如果你想显式的声明类型,可以在变量后面指定
scala> val a=1 a: Int = 1 scala> val c:String="hello scala" c: String = hello scala
Scala 支持 10 进制和 16 进制,但不支持八进制字面量和以 0 开头的整数字面量。
原生字符串
Scala 提供了 """ ... """
语法,通过三个双引号来表示原生字符串和多行字符串,使用该种方式,原生字符串中的特殊字符不会被转义。
scala> "hello \tool" res4: String = hello ool scala> """hello \tool""" res5: String = hello \tool scala> """hello | world""" res6: String = hello world
插值表达式
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.
对象相等性
如果想要判断两个对象是否相等,可以使用 ==
和 !=
,这两个操作符可以用于所有的对象,包括 null。
scala> 1==2 res2: Boolean = false scala> List(1,2,3)==List(1,2,3) res3: Boolean = true scala> 1==1.0 res4: Boolean = true scala> List(1,2,3)==null res5: Boolean = false scala> null==null res6: Boolean = true
立志如山 静心求实