演员中的 Scala 模式匹配 class

scala pattern matching in actor class

我有这个 akka 演员:

class Counter2 extends Actor {

  def counter(n:Int):Receive = {
    case "incr" => context.become(counter(n+1))
    case "get" => sender ! n
  }

  def receive = counter(0)
}

counter 函数对 receive 函数接收到的值执行模式匹配。

counter() "know" 必须如何使用 receive 接收到的值进行模式匹配?

方法 receive 的 return 值属于 Receive 类型,它是 PartialFunction[Any, Unit] 的别名。因此,传入的 actor 消息不会提供给 receive,而是 Akka 调用 receive 来获取消息传递函数。然后将此功能应用于传入消息。在您的情况下,部分函数由 counter(n: Int) 定义,该函数使用 n.

的特定值实例化