मैं एक रूबी वर्ग के लिए ==
लागू करना चाहता हूं। मैंरूबी में एक "==" कार्यान्वयन प्रकार की जांच करनी चाहिए?
def ==(o)
o.respond_to?(:id) && self.id == o.id
end
या
def ==(o)
o.is_a?(Foo) && self.id == o.id
end
this लेख के अनुसार, ऐसा लगता है कि पूर्व और अधिक समझ बनाने हैं कर सकते हैं। अगर मैं eql?
लागू कर रहा था तो मैं बाद वाला करूँगा। क्या ये सही है?
'==' मतलब * नहीं है कि इसे 'eql?' की एक और विशिष्ट आवश्यकता होने पर भी प्रकारों को पार करना होगा। हालांकि, यह उपयोगी हो सकता है कि यह दिखाया गया है कि यह अधिक संरचनात्मक रूप से आधारित है। –
@pst क्या आप 'respond_to?' का उपयोग कर कह रहे हैं ठीक है? –
इस परिदृश्य में 'आईडी' क्या है? क्या यह ऑब्जेक्ट # object_id जैसा ही है या क्या यह एक सक्रिय रिकॉर्ड आईडी या एक आवृत्ति चर के लिए एक एक्सेसर है? –