Any
Any
类是所有类的超类,是 abstract 类,它有如下方法:!=(), ==(), equals(), hashCode(), toString(), asInstanceOf(), isInstanceOf()
,其有两个子类:
AnyVal
: 是 abstract 类,对于直接类型的 scala 封装类,如 Int、Double 等,其是它们的基类AnyRef
: 是 trai,对于引用类型,其是它们的基类,包含了 java 的 Object 类的一些方法,比如notify(), wait(), finalize()
,可以直接当做 java 的 Object 来使用
Nothing
Nothing
是所有类的子类,是一个类,其没有对象,但是可以用来定义类型。作用主要有:
- 一个空的collection
- 用于标记不正常的停止或者中断
1 | scala> val l:List[Int] = List[Nothing]() |
Null
Null
是所有 AnyRef
的子类,是所有继承了 Object 的类的子类,所以 Null
可以赋值给所有的引用类型(AnyRef
),不能赋值给值类型。null
是其唯一的对象。
1 | val x = null // x: Null |
Nil
Nil
是一个空的 List,定义为 List[Nothing]
,根据 List 的定义 List[+A]
,所有 Nil
是所有 List[T]
的子类。