यह "splats" अनुक्रम। निर्माता हस्ताक्षर
new Elem(prefix: String, label: String, attributes: MetaData, scope: NamespaceBinding,
child: Node*)
जो
new Elem(prefix, label, attributes, scope,
child1, child2, ... childN)
के रूप में कहा जाता है, लेकिन यहाँ वहाँ केवल एक दृश्य, नहीं child1
, child2
, आदि है पर
देखो तो यह परिणाम अनुक्रम होने की अनुमति देता कन्स्ट्रक्टर के इनपुट के रूप में इस्तेमाल किया।
हैप्पी कोडिंग।
यह यहां एसएलएस में एक cutesy-नाम नहीं है, लेकिन विवरण हैं। प्राप्त करने की महत्वपूर्ण बात यह है कि यह बदलता है कि स्कैला दोहराए गए पैरामीटर के साथ विधि के तर्कों को कैसे बांधता है (जैसा ऊपर Node*
के साथ दर्शाया गया है)।
_*
टाइप एनोटेशन एसएलएस के "4.6.2 दोहराए गए पैरामीटर" में शामिल है।
एक पैरामीटर अनुभाग का अंतिम मान पैरामीटर "*", उदा निर्धारित फाई प्रत्यय किया जा सकता है (..., एक्स: टी *)। विधि के अंदर इस तरह के दोहराए गए पैरामीटर का प्रकार अनुक्रम प्रकार scala.Seq [टी] है। दोहराए गए पैरामीटर के साथ तरीके टी * टाइप टी के तर्कों की एक चर संख्या ले लो। यही है, यदि (पी 1: टी 1, ...।, पीएन: टीएन, पीएस: एस *) यू के साथ एक विधि एम तर्कों (ई 1, ..., ईके) पर लागू होता है जहां k> = n, फिर एम को उस एप्लिकेशन में टाइप करने के लिए लिया जाता है (पी 1: टी 1, ...।, पीएन: टीएन, पीएस: एस, ..., ps0S) यू, एस एस की घटनाओं के साथ एस एस जहां पीएस से परे कोई पैरामीटर नाम हैं ताजा। इस नियम का एकमात्र अपवाद यह है कि अंतिम तर्क को _ * प्रकार एनोटेशन के माध्यम से अनुक्रम तर्क के रूप में चिह्नित किया गया है। यदि उपर्युक्त एम तर्कों (ई 1, ..., एन, ई0: _ *) पर लागू होता है, तो उस एप्लिकेशन में एम का प्रकार (पी 1: टी 1, ...।, पीएन: टीएन, पीएस: स्केला।Seq [एस])
स्रोत
2011-05-18 21:41:14
शीर्षक में (कोलन अंडरस्कोर स्टार) जोड़ने के लिए बहुत बहुत धन्यवाद! – Gal