Scala基础知识

291 阅读1分钟

一、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类型用样例类来表示拿着可能存在、也可能不存 在的值

这里写图片描述