2009-06-29 10 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

पैटर्न मिलान करते समय, स्कैला कंपाइलर o1 c1 o2 को c1(o1, o2) जैसा समझाएगा। यही कारण है कि :: पैटर्न मैचों के अंदर भी काम करता है।

+2

उत्तर के लिए चीयर्स। एक शर्मिंदा प्रश्नों के जवाब देने से ज्यादा अंक नहीं हैं! –

संबंधित मुद्दे