我在学习Scala和我偶然发现了模式匹配的问题: 我想将一段代码传递给akka.actor,以便演员可以执行它,它只是一个教程所以我没有的,我想使用它的一个明显的例子,反正什么,我试图做看起来是这样的:模式匹配在Scala中的代码块
override def receive: Receive = {
case (block: => Unit) => block
case _ => println("cant work with that")
}
不幸的是这不会工作。我希望你们知道我想要做什么。
EDIT_1
我发现,如果我只是模式匹配Any
,它会工作,但因为我现在Any
匹配,这是非常不准确,也危险:
override def receive: Receive = {
case block => block
case _ => println("cant work with that")
}
你看通过代码块现在匹配并执行,但块匹配Any
事情,所以这仍然不是我想要的
也许你忘了'match'字? – billpcs
我不这么认为,如果我尝试模式匹配其他任何东西像正常案例类它工作得很好,尽管这就像我的akka.actor教程模式匹配演员的接收方法 编辑1: 只是如果你有兴趣 - > http://doc.akka.io/docs/akka/2.0/intro/getting-started-first-scala.html – Julian