3.3 数据类型
在 Scala 中
Scala 整体把数据分成 2 种类型:
值类型(
AnyVal
) 等同于 Java 中的基本类型, 而且编译成class
之后也确实就是用的 Java 的基本数据类型来表示 但是比 Java 的基本数据类型多了几个"边界"类型引用类型(
AnyRef
) 等同于 Java 引用数据类型(对象类型)
注意: 不管是值类型还是引用数据类型都是对象, 他们都继承自Any
这个类.
注意:
在 Scala 中类型都是用类表示的, 所以都是使用的大写字母开头
例如: Java 中的
int
, 在 Scala 中就是Int
其他的也是类似
3.3.1 Scala 几个特殊类型的理解
1. Unit
表示一种"无值", 等同于 Java 中的 void
.
Unit
只有一个实例值,写成()
。
package com.atguigu.day01
object UtilDemo {
def main(args: Array[String]): Unit = {
val a = foo()
println(a) // 输出 ()
}
def foo(): Unit ={
println(1)
}
}
2. Null
Null
类型只有一个实例值null
和 Java 中的 null
值等同. 用于给引用数据类型赋值, 然后释放对象进行垃圾回收.
var b = 10
b = null // 因为 b 是 Int 类型, 所以这个地方会编译错误
3. Nothing
Nothing
类型在 Scala 的类层级的最低端;
并且他没有任何的实例.
有 2 个作用:
用于定义
Nil
.(List[Nothing]
) 后面再讲作为一个
不能正常返回值 的函数的返回值类型.def foo(): Nothing = { throw new Exception() }