Set doc के अनुसार सेट करें, सेट में तत्व eql?
का उपयोग करके तुलना किए जाते हैं।कस्टम नियम
class Foo
attr_accessor :bar, :baz
def initialize(bar = 1, baz = 2)
@bar = bar
@baz = baz
end
def eql?(foo)
bar == foo.bar && baz == foo.baz
end
end
कंसोल में:
मैं एक वर्ग की तरह है
f1 = Foo.new
f2 = Foo.new
f1.eql? f2 #=> true
लेकिन ...
s = Set.new
s << f1
s << f2
s.size #=> 2
क्योंकि f1
के बराबर होती है f2
, s
नहीं दोनों को शामिल करना चाहिए उनमें से।
set
कस्टम नियम के साथ तत्वों को अस्वीकार कैसे करें?
तो मुझे क्या करना चाहिए? – apneadiving
@apneadiving मेरा संपादन देखें। – Phrogz
क्या आप सिर्फ '[बार, baz] .hash' का उपयोग हैश के रूप में नहीं कर सकते? –