【每日一题】Scala类型系统中 Null、Nothing、Nil、None、Unit 的区别
-
Null是一个trait,是引用类型AnyRef的一个子类型,null是Null唯一的实例 -
Nothing也是一个trait,是类型Any(包括值类型和引用类型)的子类型,它没有子类型,也没有实例,实际上为了一个方法抛出异常,通常会设置一个默认返回类型 -
Nil代表一个List空类型,等同List[Nothing] -
None是 Option 的空标识 -
Unit代表没有任何意义的值类型,类似于java中的void类型,它是AnyVal的子类型,仅有一个实例对象 ()