Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 一个方法(比如&x27;react)和&x27;不回来吗?_Scala_Actor - Fatal编程技术网

Scala 一个方法(比如&x27;react)和&x27;不回来吗?

Scala 一个方法(比如&x27;react)和&x27;不回来吗?,scala,actor,Scala,Actor,在Scala演员中,我们总是了解到“”。这到底意味着什么?“不返回”的方法与返回单位的方法有何不同 我的印象是,每个方法最终都必须完成(并且可能返回或不返回任何内容)。那么当react完成时会发生什么呢 def react(...): Nothing = ... 您无法获取Nothing的实例。这意味着反应将正确完成 它将永远运行或最终抛出异常 react(...) println("You'll never get here!") 如果是Actor#react 方法循环捕获此异常。有关详细

在Scala演员中,我们总是了解到“”。这到底意味着什么?“不返回”的方法与返回
单位的方法有何不同

我的印象是,每个方法最终都必须完成(并且可能返回或不返回任何内容)。那么当
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>
}
循环{
<反应前编码>
反应{…}
}
另请参见