我想用FSM Akka Acctor进行存储/取消存储.我不知道放在哪里stash()和unstashAll().
我有一个简化的例子如下:
import akka.actor.{ActorSystem, FSM, Props, Stash}
trait TestState
case object StateA extends TestState
case object StateB extends TestState
case class TestData()
case class MessageA(msg: String)
case class MessageB(msg: String)
case object ChangeState
class TestFSM extends FSM[TestState, TestData] with Stash {
startWith(StateA, TestData())
when(StateA) {
case Event(MessageA(msgA), _) =>
println(s"In StateA: $msgA")
stay()
case Event(ChangeState, _) =>
println("Changing state from A to B")
goto(StateB)
}
when(StateB) {
case Event(MessageB(msgB), _) =>
println(s"In StateB: $msgB") …Run Code Online (Sandbox Code Playgroud) 我想使用组合或一些更高阶的魔法来简化以下lambda,
(\a b -> if (b) then (not a) else a)
Run Code Online (Sandbox Code Playgroud)
但我想不出一个聪明的方法.你能帮帮我吗?
谢谢.