2009-06-29 15 views
13

Sadece Scala actors pakette bu durumda sınıfını gördüm:Bu örnek sınıf eşleme modeli nasıl çalışıyor?

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

Ve JavaDoc'u içinde aşağıdaki formu kullanımını açıklar:

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

Neden bu değil:

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

Patlama operatörüdür! Bir kolonda biten yöntemlere benzer bir özel durum:

cevap

33

Desen eşleme yaparken, Scala derleyici o1 c1 o2'u c1(o1, o2) ile aynı şekilde yorumlayacaktır. Bu nedenle :: desen desenleri içinde de çalışır.

+2

Yanıt için alkış. Bir Yazık Scala soruları cevaplamaktan daha fazla puan yok! –