Scala 理解Akka FSM'onTransition`
我试图用Java实现Akka FSM,因此在这个过程中,我试图理解一些用Scala编写的示例。我也看过 我不太明白下面这个例子的目的Scala 理解Akka FSM'onTransition`,scala,akka,Scala,Akka,我试图用Java实现Akka FSM,因此在这个过程中,我试图理解一些用Scala编写的示例。我也看过 我不太明白下面这个例子的目的 onTransition { case Uninitialized -> _ => unstashAll() } 它指的是转换中的任何状态吗?最后在中找到了答案 在Java中,这可以写成: onTransition { matchState(UNINITIALIZED, null, () -> unstashAll()) }
onTransition {
case Uninitialized -> _ => unstashAll()
}
它指的是转换中的任何状态吗?最后在中找到了答案
在Java中,这可以写成:
onTransition {
matchState(UNINITIALIZED, null, () -> unstashAll())
}
->thingie是中定义的提取器对象。它可以定义如下:
object -> {
def unapply[A, B](x: (A, B)): Option[(A, B)] = Some(x)
}
它只会匹配成对的对象。如果其中一个子模式是下划线,那么它只会匹配每个可能的对象。例如,使用上述定义:
List((1, 2), (1, 3), (2, 3)).collect{ case x @ (1 -> _) => x }
返回
List[(Int, Int)] = List((1,2), (1,3))
List[(Int, Int)] = List((1,3), (2,3))
所有状态都从1转换为任何状态,而
List((1, 2), (1, 3), (2, 3)).collect{ case x @ (_ -> 3) => x }
返回
List[(Int, Int)] = List((1,2), (1,3))
List[(Int, Int)] = List((1,3), (2,3))
所有状态从任意状态转换为3。FSM州也是如此