scala - 了解 Akka FSM `onTransition`
问题描述
我试图在 Java 中实现 Akka FSM,因此在此过程中试图理解一些用 Scala 编写的示例。我还查看了文档
我不太明白_
下面这种情况的目的。
onTransition {
case Uninitialized -> _ => unstashAll()
}
它是指过渡中的“任何”状态吗?
解决方案
thingie->
是FSM 伴随对象中定义的提取器对象。它可以定义如下:
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))
(所有状态从1
任何东西转换),而
List((1, 2), (1, 3), (2, 3)).collect{ case x @ (_ -> 3) => x }
返回
List[(Int, Int)] = List((1,3), (2,3))
(所有状态从任何转换到3
)。FSM 状态也是如此。
推荐阅读
- c# - 有没有办法从一组具有不同值类型的字典中通用地返回一个值?
- git - git-svn 克隆所有历史记录,但只克隆当前在 HEAD 版本中的内容
- asp.net-mvc - 当日期列等于特定值时如何以不同方式显示?
- android - Google 地图如何在不使用前台服务的情况下知道我的位置?
- swift - 将 [UInt8] 的部分转换为 UInt8
- android - sdk 28 中的音频流
- java - 在主函数中使用超出范围的变量
- python - BeautifulSoup 在迭代器上执行 find()
- django - 使用 Django 的动态过滤器在详细视图中
- grails - Grails 框架:groovy.lang.MissingMethodException:没有方法签名