Я пытаюсь пройти 9 главу по программированию в Scala, но обнаружил, что пример кода 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