2016-02-15 6 views
13

मैं Perl 6 docs on the shift routine ढूंढ रहे थे और इस स्निपेट देखा:के बीच क्या अंतर है: डी और: डी :?

के रूप में परिभाषित:

multi sub shift(Array:D) 
multi method shift(Array:D:) 

मैं जानता हूँ कि :D मतलब है Arraydefined और नहीं Any या Nil है, लेकिन क्या :D: है? खोजना बहुत मुश्किल है।

This section प्रकार हस्ताक्षर दस्तावेज़ों में वाक्यविन्यास के अधिक उदाहरण हैं, लेकिन (जहां तक ​​मैं कह सकता हूं) इसे समझाता नहीं है।

उत्तर

11

किसी विधि का आक्रमणकर्ता एक निहित पहला तर्क के रूप में पारित हो जाता है। यदि आप हस्ताक्षर के भीतर एक स्पष्ट पैरामीटर का उपयोग करना चाहते हैं (उदाहरण के लिए :D जैसे एक प्रकार की स्माइली जोड़ने के लिए या इसे अधिक वर्णनात्मक नाम देने के लिए), तो आपको पैरामीटर सूची के , के बजाय इसे : से अलग करने की आवश्यकता है । यह एक खाली सूची के मामले में भी जरूरी है, इसलिए इसे नियमित स्थितित्मक पैरामीटर के साथ हस्ताक्षर से अलग किया जा सकता है।

कुछ और जानकारी in the design documents मिल सकती है।

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