Scala中的Nothing和Null类型

Scala Nothing类型

这是Scala的一个特征。作为特征,它没有任何实例,并且包含在每个数据集中,但不是超类。在始终返回异常进行处理的函数中没有发现任何用处。

Scala Nil 类型

它是一个没有元素的列表。Nil不使用任何内容,因为它是一个子集。Nil的类型为list [nothing]。

var a = nil gives a lit[nothing]

Scala Null 类型

它是仅由参考实例而非数据实例使用的特征。这意味着它是唯一参考类的子集。Scala使用Option而不是Null,因为它更有效。引用数据类型(如对象等)的值为null,但此值对数据类型(如Int,Float等)无效。

Scala None 类型

它是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