每日一题Scala类型系统中 NullNothingNilNoneUnit 的区别

Posted 勾叔谈大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题Scala类型系统中 NullNothingNilNoneUnit 的区别相关的知识,希望对你有一定的参考价值。

勾叔谈大数据,每日与你分享干货内容。大家好,我是勾叔。今天的面试题为: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的理解和使用。
大家如果想进行更深入的了解和学习,请关注勾叔谈大数据参与更多互动。



推荐阅读:




以上是关于每日一题Scala类型系统中 NullNothingNilNoneUnit 的区别的主要内容,如果未能解决你的问题,请参考以下文章

PMP每日一题

变量类型构造器封装以及 LeetCode 每日一题

每日一题谈谈你对函数式编程的理解?

CISP/CISA 每日一题 七

每日一题904. 水果成篮

JS-每日一题