Para una sencilla clase de estructura similar:Cuál es la forma correcta para implementar la igualdad en rubí
class Tiger
attr_accessor :name, :num_stripes
end
¿cuál es la forma correcta de poner en práctica la igualdad correctamente, para asegurar que ==
, ===
, eql?
, etc trabajo, y de manera que las instancias de la obra de teatro muy bien en conjuntos, hashes, etc.
EDITAR
Además, lo que es una buena manera de poner en práctica la igualdad cuando se desea comparar basada en estado que no está expuesto fuera de la clase? Por ejemplo:
class Lady
attr_accessor :name
def initialize(age)
@age = age
end
end
aquí me gustaría que mi método de la igualdad de tomar @age en cuenta, pero la señora no expone su edad a los clientes. ¿Tendría que usar instance_variable_get en esta situación?
[Esta es una buena valoración crítica comparando los pros y contras de la definición de igualdad de objetos] (http://www.skorks.com/2009/09/ruby-equality-and-object-comparison /) – ennuikiller