2009-06-29 45 views
13

我剛看到這種情況下類斯卡拉actors包:這種案例類匹配模式如何工作?

case class ! [a](ch: Channel[a], msg: a) 

而且在JavaDoc它描述爲以下形式使用:

receive { 
    case Chan1 ! msg1 => ... 
    case Chan2 ! msg2 => ... 
} 

這是爲什麼不:

receive { 
    case !(Chan1, msg1) => ... 
    case !(Chan2, msg2) => ... 
} 

是爆炸操作員!類似於以冒號結尾的方法:

回答

33

在進行模式匹配時,Scala編譯器將解釋與c1(o1, o2)相同的o1 c1 o2。這就是爲什麼::也適用於模式匹配。

+2

歡呼的答案。一個恥辱,回答斯卡拉問題沒有更多的要點! – 2009-06-29 16:17:21