以下代码:
class HotSwapActor extends Actor { import context._ def angry: PartialFunction[Any,Unit] = { case "foo" => sender ! "I am already angry!" case "bar" => become(happy) } def happy: PartialFunction[Any,Unit] = { case "bar" => sender ! "I am already happy :-)"; unbecome case "foo" => become(angry) } def receive = { case "foo" => become(angry) case "bar" => become(happy) } } class OtherActor extends Actor { val system = ActorSystem() val actor = system.actorOf(Props[HotSwapActor]) def receive = { case "start" => actor ! "foo" actor ! "bar" actor ! "bar" actor ! "foo" case a @ _ => println(a) } } object HotSwapMain extends App { val system = ActorSystem() val actor = system.actorOf(Props[OtherActor]) actor ! "start" }
有输出:
I am already happy