Any
Any是abstract类,它是Scala类继承结构中最底层的。所有运行环境中的scala类都是直接或间接继承自Any这个类,它就是其它语言(.Net,Java等)中的Object。
AnyVal
AnyVal 所有值类型的基类, 它描述的是值,而不是代表一个对象。
它包括 9 个 AnyVal 子类型:
scala.Double
scala.Float
scala.Long
scala.Int
scala.Char
scala.Short
scala.Byte
上面是数字类型。
scala.Unit 和 scala.Boolean 是非数字类型。
Scala 2.10 之前, AnyVal 是一个密封的 trait,不能被继承。 从 Scala 2.10开始,我们可以自定义一个从 AnyVal继承下来的类型。
AnyRef
AnyRef是所有引用类型的基类。除了值类型,所有类型都继承自AnyRef 。
Nothing
Nothing是所有类型的子类,Nothing没有对象,但是可以用来定义类型,例如一个方法抛出异常,则不论该方法应该返回哪种类型,异常的返回值可以是Nothing。