खोज…


टिप्पणियों

बंदर सुविधाजनक, जबकि सुविधाजनक कुछ नुकसान है कि तुरंत स्पष्ट नहीं कर रहे हैं। सबसे विशेष रूप से, इस तरह एक पैच वैश्विक दायरे को प्रदूषित करता है। यदि दो मॉड्यूल दोनों Hash#symbolize , तो केवल अंतिम मॉड्यूल की आवश्यकता होती है जो वास्तव में इसके परिवर्तन को लागू करता है; बाकी मिटा दिए गए हैं।

इसके अलावा, अगर वहाँ एक पैच विधि में कोई त्रुटि है, तो स्टैच्रेस केवल पैच किए गए वर्ग को इंगित करता है। इसका तात्पर्य है कि Hash वर्ग में ही एक बग (जो अब है)।

अंत में, क्योंकि रूबी क्या कंटेनरों के साथ बहुत लचीला है, एक विधि जो बहुत सरल लगती है जब आप लिखते हैं तो इसमें बहुत सारी अपरिभाषित कार्यक्षमता होती है। उदाहरण के लिए, Array#sum बनाना संख्याओं की एक सरणी के लिए अच्छा है, लेकिन कस्टम वर्ग की एक सरणी दिए जाने पर टूट जाता है।

एक सुरक्षित विकल्प शोधन है, जो रूबी> = 2.0 में उपलब्ध है।

कार्यात्मकता जोड़ना

आप रूबी में किसी भी वर्ग के लिए एक विधि जोड़ सकते हैं, चाहे वह बिलिन हो या नहीं। कॉलिंग ऑब्जेक्ट को self का उपयोग करके संदर्भित किया जाता है।

class Fixnum
  def plus_one
    self + 1
  end

  def plus(num)
    self + num
  end

  def concat_one
    self.to_s + '1'
  end
end

1.plus_one # => 2
3.plus(5) # => 8
6.concat_one # => '61'


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow