有人知道任何好的参考资料吗?
谢谢, 添
答案 0 :(得分:5)
答案 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编程”中得到了很好的解释。