Для простого структуроподобного класса:
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 в этой ситуации?