我在學習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