actor类中的scala模式匹配

时间:2015-11-01 23:28:40

标签: scala pattern-matching actor

我有这个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()"如何知道"必须使用receive收到的值完成模式匹配?

1 个答案:

答案 0 :(得分:0)

方法Receive的返回值属于PartialFunction[Any, Unit]类型,它是receive的别名。因此,传入的actor消息不会被赋予receive,但Akka会调用counter(n: Int)来获取消息传递功能。然后将此功能应用于传入消息。在您的情况下,部分函数由n定义,该函数使用@keyframes rotateLastWord的特定值进行实例化。