Для простой структуры типа класса:Что такое правильный способ реализации равенства в рубине
class Tiger
attr_accessor :name, :num_stripes
end
что правильный способ правильно осуществить равенство, чтобы гарантировать, что ==
, ===
, eql?
и т.д. работа, и так что экземпляры класса дружат в наборах, хэши и т.д.
EDIT
Кроме того, что хороший способ для реализации равенства, когда вы хотите сравнить на основе по состоянию, которое не отображается вне класса? Например:
class Lady
attr_accessor :name
def initialize(age)
@age = age
end
end
здесь я хотел бы мой метод равенства принять @age во внимание, но леди не подвергает ее возраст клиентов. Должен ли я использовать instance_variable_get в этой ситуации?
[Это хорошая рецензия сравнения входов и выходов, определяющее объектого равенства] (http://www.skorks.com/2009/09/ruby-equal-and-object-comparison /) – ennuikiller