est ici une partie de ma Note
classe:Pouvez-vous définir <=> dans Ruby, puis avoir ==,>, <, > =, et <= défini automatiquement?
class Note
attr_accessor :semitones, :letter, :accidental
def initialize(semitones, letter, accidental = :n)
@semitones, @letter, @accidental = semitones, letter, accidental
end
def <=>(other)
@semitones <=> other.semitones
end
def ==(other)
@semitones == other.semitones
end
def >(other)
@semitones > other.semitones
end
def <(other)
@semitones < other.semitones
end
end
Il me semble qu'il devrait y avoir un module que je pouvais comprendre cela pourrait me donner mes égalité et opérateurs comparaison basée sur ma méthode <=>
. Est-ce qu'il y a un?
Je suppose que beaucoup de gens rencontrent ce genre de problème. Comment le résolvez-vous habituellement? (Comment faites-vous DRY?)
ah génial! Je savais qu'il y aurait quelque chose, mais c'était plutôt difficile à chercher. : P Merci! –