斯卡拉 – 误会阿卡变得/不成熟
发布时间:2020-12-16 09:14:52  所属栏目:安全  来源:网络整理 
            导读:以下代码: 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 !
                
                
                
            | 
 以下代码: 
  
  
  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"
}有输出: 
 | 
