Scala中的Nothing和Null类型
ScalaNothing类型
这是Scala的一个特征。作为特征,它没有任何实例,并且包含在每个数据集中,但不是超类。在始终返回异常进行处理的函数中没有发现任何用处。
ScalaNil类型
它是一个没有元素的列表。Nil不使用任何内容,因为它是一个子集。Nil的类型为list[nothing]。
var a = nil gives a lit[nothing]
ScalaNull类型
它是仅由参考实例而非数据实例使用的特征。这意味着它是唯一参考类的子集。Scala使用Option而不是Null,因为它更有效。引用数据类型(如对象等)的值为null,但此值对数据类型(如Int,Float等)无效。
ScalaNone类型
它是Scala选项类型中null的替换。没有给出任何值时,不会初始化任何内容。
示例
object MyClass { def main(args: Array[String]) { println(null); //println(none) // 给出错误:找不到:值无 println(Nil) } }
输出结果
nullList()
Scala中None的示例
object MyClass { def main(args: Array[String]) { //打印空列表 println(None.toList) //检查None是否为空 println(None.isEmpty) //打印值None作为字符串 println(None.toString) } }
输出结果
List()true None