vlambda博客
学习文章列表

【每日一题】Scala类型系统中 Null、Nothing、Nil、None、Unit 的区别

勾叔谈大数据,每日与你分享干货内容。大家好,我是勾叔。今天的面试题为:Scala类型系统中 Null、Nothing、Nil、None、Unit 的区别。

问题分析:
考察Scala中的一些容易混淆的概念,这些符号放在一起容易混淆。

核心问题回答:

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


问题扩展:
对Scala Option的理解和使用。
大家如果想进行更深入的了解和学习,请关注勾叔谈大数据参与更多互动。



推荐阅读: