मैं (अनजाने में) पैटर्न पैटर्न मिलान वाक्य के कुछ हिस्सों में आया था, मुझे संकलन करने की उम्मीद नहीं थी और अब यह पता नहीं लगाया जा सकता है।स्कैला unapplySeq extractor वाक्यविन्यास
यह unapplySeq
से संबंधित प्रतीत होता है।
नोट इस सरल उदाहरण में case x List(_,_)
हिस्सा:
val xs = List(1, 2, 3) //> xs : List[Int] = List(1, 2, 3)
xs match {
case x List (_, _) => "yes"
case _ => "no"
} //> res0: String = yes
मैं पैटर्न मैच वाक्य रचना में :
या @
के लिए इस्तेमाल किया है, लेकिन इस बारे में उलझन में हूँ कर रहा हूँ। यह वाक्यविन्यास कैसे काम करता है और क्या (यदि कोई है) unapplySeq
से इसका संबंध है?
नमूना स्काला 2.11.6 में मार डाला कोड
आप कहां बताते हैं कि कैसे मामला सूची (x, _, _) => "yes" 'केस x सूची (_, _) =>" yes "' के बराबर होगी? –
इन्फिक्स ऑपरेटर नोटेशन वह जगह है जहां विधि ऑब्जेक्ट और पैरामीटर (या पैरामीटर) के बीच बैठती है। – bjfletcher
मैंने सोचा था कि इन्फिक्स नोटेशन केवल 2 तर्कों के साथ कार्यों पर लागू होता है ?? स्रोत को देखते हुए, 'List.unapplySeq' को परिभाषित किया गया है' def unapplySeq [ए] (x: CC [ए]): कुछ [सीसी [ए]] = कुछ (x) ' –