单位是什么类型?

时间:2014-03-08 11:48:16

标签: scala

有人知道任何好的参考资料吗?

谢谢, 添

3 个答案:

答案 0 :(得分:5)

enter image description here

  1. Null:参考类型的底部类型
  2. 没有:所有类型的底部类型
  3. 单位:表示缺席结果的类型

答案 1 :(得分:1)

  • Unit - 本质上只有一个值()的类型 - 在Java中通常使用void的地方使用它。
  • Null - 另一种只有一个值null的类型。它是所有引用(可空)类型的子类型。
  • Nothing - 一种没有值的类型,是所有其他类型的子类型。唯一具有类型Nothing的有效表达式是始终抛出异常的表达式。 Nothing可用于表示诸如空列表之类的内容,其类型为List[Nothing]。多亏了这一点,它可以在任何需要List[E]的地方使用,无论类型E如何(这也是由列表的协方差提供的)。

答案 2 :(得分:0)

Scala.Null 是“null”引用的类型。它是一个引用类型(因此Null类型的对象不能分配给像Long这样的值类型变量,它不是引用类型)。将其视为空的或无效的参考。

Scala.Nothing 是一个没有任何值的类。您可以使用它来表示空结果(而不是像在许多其他语言中那样使用null)。它是Scala中任何类型的子类型(因此您可以为任何类型变量分配Nothing)。

Scala.Unit 是其他语言可能称之为“void”的数据类型:它表示没有任何值。因此,“()”是此类实例的简写(事实上,此类只有一个实例)。

所有这一切都在Martin Odersky的书“Scala编程”中得到了很好的解释。