儲存支援
最後但並非最不重要的是,內建了一些方便的魔法,它檢測靜態給定的 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()
}
}
})