scala.Nothing 类型的理解

2024-01-04

根据scala规范, scala.Nothing type - 所有类型的按钮。 类型“Nothing”存在,但 Nothing 的实例不存在。

怎么运行的:

def ??? : Nothing = throw new NoImplementedError
def sys.error(message: String): Nothing = throw new RuntimeException()
def sys.exit(status: Int): Nothing = {...}

但事实上,所有提到的方法都会返回异常。例外def sys.exit您能否详细说明一下 Nothing 类型。任何例子,解释。

Thanks!


def ??? : Nothing = throw new NoImplementedError

不返回异常,它抛出一个不是同一件事的异常。异常是一种控制流机制,它导致控制立即跳转到调用堆栈中最近安装的处理程序。这意味着在

val x = ???

x永远不会被赋值,所以x可以有任何类型。这种类型是Nothing在 scala 类型系统中,它是所有类型的子类型。

非终止也没有任何类型,因为它也从不返回值,例如

def loop(): Nothing = loop()

val x: Int = loop()

因此是允许的,因为x永远不会被分配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scala.Nothing 类型的理解 的相关文章

随机推荐