option[T]、Any、Nothing、Null类型的介绍
Option[T]
- 主要作用:就是解决NullPointerException异常的,所以当函数的返回值可能为null的时候使用option(如:将option作为Map,List等集合的get方法的返回值类型)
- 两个子类:None和Some()
- Option[T]实际上是一个容器,该容器有0个或者一个元素的,可以对其遍历
- Option里面有元素的时候,容器长度是1(也就是 Some),Option里没有元素时,它的长度是0(也就是 None)
Any
- Any:是abstract类,是scala中最底层的类(Scala类都是直接或间接继承自Any这个类)
- 两个子类:
- AnyRef:所有引用类型的父类型
- AnyVal:所有值类型的父类型
Nothing和Null
- Nothing:是所有类的子类。它没有实例对象,Nothing通常用于程序的异常的返回
- Nothing 为类型系统提供了两种功能:
- 用来当做List[Nothing](Nil)集合中的数据类型(Nil继承List[Nothing])
- 用来表示终止程序(程序异常)的返回值类型:def throw : Nothing = throw new NotImplementedError
- Null:Null是所有的AnyRef类型的的子类,null是Null的唯一对象,所有AnyRef的类型的空值都是null
注意:Null与Nothing都表示空,Nothing是Null的子类