#
一、scala的数据类型
案例
2.1 val 表示常量, 不可修改, 注意和var的区别
2.2.var表示变量, 可以修改
scala> var b = "name"
b: String = name
scala> b="tel"
b: String = tel
scala>
使用编译器自动推断类型
2.3、懒加载变量
三、数据类型
3.2
• 其中所有类型的基类与Any
• Any之后分为两个AnyVal与AnyRef
– 其中AnyVal是所有值类型的父类型
– AnyRef是所有引用类型的父类型
• 与其他语言稍微有点不同的是,Scala还定义了底类型
– 其中Null类型是所有引用类型的底类型,及所有AnyRef的类型的空值都是Null
– 而Nothing是所有类型的底类型,对应Any类型
– Null与Nothing都表示空,这个大家一看就明白了吧。
• 在基础类型中只有String是继承自AnyRef的,与Java、.net一样,Scala中的 String也是内存不可变对象,这就意味着,所有的字符串操作都会产生新的字符串
• 其他的基础类型如Int等都是Scala包装的类型,例如Int类型对应的是Scala.Int只是 Scala包会被每个源文件自动引用,看上去Int类型就像是直接内置在语言中一样
3.3、Null, None, Nil, Nothing的区别
Null ,Nothing
Option 标准类库中的Option类型用样例类来表示拿着可能存在、也可能不存 在的值