Theo số Set doc, các thành phần trong một bộ được so sánh bằng cách sử dụng eql?
.Đặt với quy tắc tùy chỉnh
Tôi có một lớp học như:
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
Trong giao diện điều khiển:
f1 = Foo.new
f2 = Foo.new
f1.eql? f2 #=> true
Nhưng ...
s = Set.new
s << f1
s << f2
s.size #=> 2
Vì f1
bằng f2
, s
nên không bao gồm cả của họ.
Làm cách nào để làm cho các yếu tố từ chối set
có quy tắc tùy chỉnh?
vì vậy tôi nên làm gì? – apneadiving
@apneadiving Xem chỉnh sửa của tôi. – Phrogz
Bạn không thể sử dụng '[bar, baz] .hash' làm băm không? –