儲存支援

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