存储支持

最后但并非最不重要的是,内置了一些方便的魔法,它检测静态给定的 actor 子类型的运行时类是否通过 Stash 特征扩展了 RequiresMessageQueue 特征(这是一种复杂的方式,说新的 Act with Stash 会不起作用,因为它的运行时擦除类型只是 Act 的匿名子类型)。目的是自动使用 Stash 所需的适当的基于 deque 的邮箱类型。如果你想使用这个魔法,只需扩展 ActWithStash:

val a = actor(new ActWithStash {
  become {
    case 1 ⇒ stash()
    case 2 ⇒
      testActor ! 2; unstashAll(); becomeStacked {
        case 1 ⇒ testActor ! 1; unbecome()
      }
  }
})