根据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 2012-04-14 13:28:36
@apneadiving查看我的编辑。 – Phrogz 2012-04-14 13:29:58
难道你不能只用'[bar,baz] .hash'作为散列吗? – 2012-04-14 13:36:08