对于一个简单的类结构类:
class Tiger
attr_accessor :name, :num_stripes
end
什么是正确实现相等的正确方法,以确保 、==
、===
等eql?
工作,并让类的实例在集合、散列等中很好地发挥作用。
编辑
另外,当您想基于未在类外公开的状态进行比较时,有什么好的方法来实现平等?例如:
class Lady
attr_accessor :name
def initialize(age)
@age = age
end
end
在这里,我希望我的平等方法将@age 考虑在内,但女士不会将她的年龄暴露给客户。在这种情况下我必须使用 instance_variable_get 吗?