ruby - What does self. mean in a class method? -


प्रोग्रामिंग रूबी में, मैंने देखा कि एक क्लास मेथड

  class file def self .my_open (* आर्ग्स) # ... एंड एंड   

उपसर्ग "स्वयं" क्या करता है। यहाँ मतलब है?

वाक्यरचना def receiver.method का उपयोग कर आप विशिष्ट ऑब्जेक्ट <पूर्व> वर्ग कुत्ता डीआरएफ़ छाल डालता है 'वाफ' एंड एंड सामान्य_डॉग = कुत्ते। नया गुस्सा गुस्सा = कुत्ते। नया डीईएफ़ angry_dog.bite डालता है "yum" end normal_dog.class # = & gt; कुत्ते को गुस्साजनक_डोग.क्लास # = & gt; गुस्सा गुस्सा-गुस्सा। बाइट # & gt; & gt; Yum normal_dog.bite # ~ & gt; -: 15: `& lt; मुख्य & gt; 'में: # & lt; कुत्ता: 0x007f 9a93064cf0 & gt; के लिए अपरिभाषित विधि` काट' (नोमथिएयर एन्टर)

ध्यान दें कि भले ही कुत्ते एक ही कक्षा कुत्ते के होते हैं, उनमें से एक का एक अनूठा तरीका होता है जो एक और कुत्ता नहीं है।

वर्गों के साथ एक ही बात कक्षा परिभाषा के अंदर, उस वर्ग के लिए स्व अंक। यह समझने में महत्वपूर्ण है।

  वर्ग फू आत्म # = & gt; फ़ू एंड   

अब इन दो वर्गों को देखें:

  वर्ग Foo def self.hello "हैलो फू फू" एंड एंड क्लास बार एंड फू क्लास # = & Gt; कक्षा बार। वर्ग # = & gt; कक्षा Foo.hello # = & gt; "हैलो फॉर फू" बार। हिलो # ~ & gt;   

भले ही दोनों फ़ू और और बार दोनों उदाहरण (वर्ग) class के ऑब्जेक्ट हैं, इनमें से एक में एक विधि है जो दूसरा नहीं करता है। एक ही बात।

यदि आप विधि परिभाषा में स्व को छोड़ देते हैं, तो यह उदाहरण विधि हो जाता है और यह उदाहरणों < / Em> क्लास के बजाय खुद की बजाय क्लास का। पहली स्निपेट में डॉग # छाल परिभाषा देखें।

समापन के लिए, यहां एक उदाहरण के तरीके को परिभाषित करने के दो तरीके हैं:

  class Foo def self.hello1 "hello1" अंत def Foo.hello2 "hello2" अंत अंत def Foo.hello3 "hello3" अंत Foo.hello1 # = & gt; "हैलो 1" Foo.hello2 # = & gt; "हैलो 2" Foo.hello3 # = & gt; "हैलो 3"    

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -