मेरे पास कुछ सदस्य चर के साथ कक्षा फू है। जब कक्षा के दो उदाहरणों में सभी मूल्य बराबर होते हैं, तो मैं वस्तुओं को 'बराबर' होना चाहता हूं। मैं इन वस्तुओं को अपने हैश में चाबियाँ पसंद करूंगा। जब मैं वर्तमान में यह कोशिश करता हूं, हैश प्रत्येक उदाहरण को असमान मानता है।रूबी में ऑब्जेक्ट उदाहरण को हैश कुंजी कैसे बनाएं?
h = {}
f1 = Foo.new(a,b)
f2 = Foo.new(a,b)
f1 और f2 इस बिंदु पर बराबर होना चाहिए।
h[f1] = 7
h[f2] = 8
puts h[f1]
प्रिंट चाहिए 8
बिल्कुल सही स्पष्टीकरण। =) – Mereghost
अच्छा, सिवाय इसके कि हैश को फिक्सनम होना चाहिए, इसलिए बेहतर उपयोग करें या योग के बजाय (जो एक बिग्नम पर बह सकता है)। वैकल्पिक रूप से, 'ऐरे # हैश' का उपयोग करें, जैसे' [@ data1, @ data2] .hash', कहें। –
अच्छा बिंदु। अलग-अलग हैंश जोड़ना भी खतरे में है कि एक ही राशि अलग-अलग व्यक्तिगत हैंश (3 + 2 = 5 और 1 + 4 = 5) से हो सकती है। मार्क-हैश के रूप में ऐरे # हैश का उपयोग करने से पता चलता है कि समाधान अधिक पूर्ण हो जाएगा। – Mark