Scala 一个方法(比如&x27;react)和&x27;不回来吗?
在Scala演员中,我们总是了解到“”。这到底意味着什么?“不返回”的方法与返回Scala 一个方法(比如&x27;react)和&x27;不回来吗?,scala,actor,Scala,Actor,在Scala演员中,我们总是了解到“”。这到底意味着什么?“不返回”的方法与返回单位的方法有何不同 我的印象是,每个方法最终都必须完成(并且可能返回或不返回任何内容)。那么当react完成时会发生什么呢 def react(...): Nothing = ... 您无法获取Nothing的实例。这意味着反应将正确完成 它将永远运行或最终抛出异常 react(...) println("You'll never get here!") 如果是Actor#react 方法循环捕获此异常。有关详细
单位的方法有何不同
我的印象是,每个方法最终都必须完成(并且可能返回或不返回任何内容)。那么当react
完成时会发生什么呢
def react(...): Nothing = ...
您无法获取Nothing
的实例。这意味着反应
将正确完成
它将永远运行或最终抛出异常
react(...)
println("You'll never get here!")
如果是Actor#react
方法循环
捕获此异常。有关详细说明,请参见Philipp Haller和Martin Odersky,Proc。协调2007年。您不需要这些详细信息来处理参与者,您只需要知道react
之后的所有代码都是不可访问的:
loop {
<code before react>
react {...}
<unreachable code>
}
循环{
<反应前编码>
反应{…}
}
另请参见