存储支持
最后但并非最不重要的是,内置了一些方便的魔法,它检测静态给定的 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()
}
}
})