我與地圖演員的試驗,並想知道如何實例他們一舉開始他們...實例化和在地圖開始斯卡拉演員
import scala.actors.Actor
import scala.actors.Actor._
import scala.collection.mutable._
abstract class Message
case class Update extends Message
object Test {
val groupings = "group1" :: "group2" :: "group3":: Nil
val myActorMap = new HashMap[String,MyActor]
def main(args : Array[String]) {
groupings.foreach(group => myActorMap += (group -> new MyActor))
myActorMap("group2").start
myActorMap("group2") ! Update
}
}
class MyActor extends Actor {
def act() {
loop {
react {
case Update =>
println("Received Update")
case _ =>
println("Ignoring event")
}
}
}
}
線:
myActorMap("group2").start
會搶了二審,讓我開始,但我想能夠做更多的東西一樣:
groupings.foreach(group => myActorMap += (group -> (new MyActor).start))
但是不管我如何包裝新的Actor,編譯器都會抱怨以下幾行:
type mismatch;發現:需要scala.actors.Actor: com.myCompany.test.MyActor
或其他各種投訴。我知道這與匿名課程一定很簡單,但我現在看不到它。有什麼建議麼?提前致謝!!
工作,謝謝。 – 2011-01-08 15:40:10
雖然不是很FP。我認爲雷克斯的方法(continuation-passing style?)可能有助於在不同情況下使代碼最小化。 – 2011-01-08 17:12:14