option[T]、Any、Nothing、Null类型的介绍

Option[T]

  1. 主要作用:就是解决NullPointerException异常的,所以当函数的返回值可能为null的时候使用option(如:将option作为Map,List等集合的get方法的返回值类型)
  2. 两个子类:None和Some()
  3. Option[T]实际上是一个容器,该容器有0个或者一个元素的,可以对其遍历
  4. Option里面有元素的时候,容器长度是1(也就是 Some),Option里没有元素时,它的长度是0(也就是 None)

Any

  1. Any:是abstract类,是scala中最底层的类(Scala类都是直接或间接继承自Any这个类)
  2. 两个子类:
    1. AnyRef:所有引用类型的父类型
    2. AnyVal:所有值类型的父类型

Nothing和Null

  1. Nothing:是所有类的子类。它没有实例对象,Nothing通常用于程序的异常的返回
  2. Nothing 为类型系统提供了两种功能:
    1. 用来当做List[Nothing](Nil)集合中的数据类型(Nil继承List[Nothing])
    2. 用来表示终止程序(程序异常)的返回值类型:def throw : Nothing = throw new NotImplementedError
  3. Null:Null是所有的AnyRef类型的的子类,null是Null的唯一对象,所有AnyRef的类型的空值都是null

    注意:Null与Nothing都表示空,Nothing是Null的子类

原文地址:https://www.cnblogs.com/WeiKing/p/11592065.html