Per una semplice struct simile classe:Qual è il modo giusto per realizzare l'uguaglianza in rubino
class Tiger
attr_accessor :name, :num_stripes
end
qual è il modo corretto per implementare l'uguaglianza correttamente, per garantire che ==
, ===
, eql?
, ecc lavoro, e in modo che le istanze della classe di gioco ben in set, hash, ecc
EDIT
Inoltre, che cosa è un bel modo per implementare l'uguaglianza quando si desidera confrontare base su uno stato che non è esposto al di fuori della classe? Per esempio:
class Lady
attr_accessor :name
def initialize(age)
@age = age
end
end
qui Vorrei che il mio metodo di uguaglianza di prendere @age in considerazione, ma la signora non esporre la sua età ai clienti. Dovrei usare instance_variable_get in questa situazione?
[Questo è un interessante resoconto a confronto i pro ei contro di definizione dell'uguaglianza oggetto] (http://www.skorks.com/2009/09/ruby-ugality-and-object-comparison /) – ennuikiller