[英]Scala Actor in script mode
我正在尝试阅读Scala编程的第9章,但发现Actor示例代码无法在脚本模式下运行。
代码很简单:
// TestActor.scala
import scala.actors.Actor
class Redford extends Actor {
def act() {
println("A lot of what acting is, is paying attention.")
}
}
val robert = new Redford
robert.start
但是,当我运行scala TestActor.scala
,什么也没有发生,程序在Redford类打印任何内容之前退出。
但是,如果我使用以下代码进行编译和运行,则一切正常,它将按预期方式打印消息。
// TestActorCompiled.scala
import scala.actors.Actor
class Redford extends Actor {
def act() {
println("A lot of what acting is, is paying attention.")
}
}
object Main {
def main (args: Array[String]) {
val robert = new Redford
robert.start
}
}
看起来,当程序以脚本模式运行时,它会在参与者执行任何操作之前退出。
为什么会这样? 在脚本模式下运行Actor.act()
之前,如何使该程序不退出?
更新:
我正在使用Scala 2.8.1.final
在2.8.1.final
测试。 奇怪的事情。 我第一次运行它失败:
Could not connect to compilation daemon.
Exception in thread "main" java.lang.Exception: fsc failure
at scala.tools.nsc.CompileSocket.fatal(CompileSocket.scala:50)
at scala.tools.nsc.CompileSocket.getPort(CompileSocket.scala:122)
at scala.tools.nsc.CompileSocket.getsock$1(CompileSocket.scala:152)
at scala.tools.nsc.CompileSocket.getOrCreateSocket(CompileSocket.scala:170)
at scala.tools.nsc.ScriptRunner$.compileWithDaemon(ScriptRunner.scala:145)
at scala.tools.nsc.ScriptRunner$.compile$1(ScriptRunner.scala:197)
at scala.tools.nsc.ScriptRunner$.withCompiledScript(ScriptRunner.scala:225)
at scala.tools.nsc.ScriptRunner$.runScript(ScriptRunner.scala:265)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:91)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
第二次成功通过:
>scala TestActor.scala
A lot of what acting is, is paying attention.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.