Hello Actor
とりあえず書いてみた。
package actor import scala.actors._ import scala.actors.Actor._ object HelloActor { private val foo = actor { println(">>foo actor") loop { println(">> foo loop") receive { case ('hello, msg) => println("Hello "+msg) case ('goodbye, msg) => println("Goodbye "+msg) exit } println("<< foo loop") } println("<<foo actor") } def main(args: Array[String]): Unit = { foo ! ('hello, "hoge") foo ! ('unknown, "hoge") foo ! ('goodbye, "hoge") } }
'unknown メッセージを送りつけても、無視されるだけですむ。PartialFunction ならでは。
Actor の動作をとめるには、Actor 内から exit を呼ぶ必要があるみたいです。外から止める方法は無いんだろうか・・・?