【发布时间】:2011-01-26 20:16:47
【问题描述】:
我对 Scala 完全陌生,我一直在通过 Scala 编程 (O'Reilly) 在线工作;这样做时,我对Chapter 1, "A Taste Of Concurrency" 中的shapes-actor-script.scala 示例的结果感到惊讶。
具体来说,运行scala -cp . shapes-actor-script.scala的输出应该是:
Circle.draw: Circle(Point(0.0,0.0),1.0)
Rectangle.draw: Rectangle(Point(0.0,0.0),2.0,5.0)
Triangle.draw: Triangle(Point(0.0,0.0),Point(1.0,0.0),Point(0.0,1.0))
Error: Unknown message! 3.14159
exiting...
然而,大约 10% 的情况下,我根本没有得到任何输出,甚至更罕见的是,我只会得到第一行作为输出。由于 Actor 的工作方式,我对 Scala 的了解还不够,不知道这是否正常,或者我的 Scala 安装(Arch Linux 上的 Scala 2.8.1)是否有问题。
Actor 是否会无法处理这样的消息(可能是因为示例的编写方式)?或者还有什么我可能在这里遗漏的事情?
【问题讨论】: