我正在学习Scala,并且对下一种类型之间的区别感到有些困惑:' Null'' Nil'并且没有什么'
有人可以帮我解释一下这个区别吗? 从我收集到的," Nil"用于描述空列表。
答案 0 :(得分:1)
有7种情况需要在Scala中表示虚无的概念。
Nil
-用于表示空列表或零长度的集合。对于集,您可以使用Set.empty
None
-Optional类型的两个子类之一,另一个是Some
。 Scala集合很好地支持了它。
Unit
-等效于Java的void
,用于没有返回类型的函数
Nothing
-特质。它是所有其他类型的子类型,但是什么都不是的父类型。它就像一棵树的叶子。没有Nothing的实例。
Null
-特质。不建议使用。
null
-特征的一个实例,类似于Java Null
。不建议使用。
有关最佳做法的建议,请参见https://alvinalexander.com/scala/scala-null-values-option-uninitialized-variables
答案 1 :(得分:0)
在scala中null
真的很糟糕,你必须使用Optional[T]
。
我们有Nil
这是一个空列表,可以1 :: Nil
创建仅包含1
的列表。
而且,Nothing
是每种类型的子类型。在其他世界中,是一个代表null
的对象。