액터가 가변 상태인 사례를 보고합니다.

예:


  import akka.actor._

  class ActorImpl(private var counter: Int = 0) extends AbstractActor {
    override def receive = {
      case _ => counter += 1
    }
  }    

빠른 수정 적용 후:


  import akka.actor._
  
  class ActorImpl(private val counter: Int = 0) extends AbstractActor {
    override def receive = onMessage(counter)
  
    private def onMessage(counter: Int): Receive = {
      case _ => context.become(onMessage(counter + 1))
    }
  }