2010-05-12 77 views
9

這裏是我的Note類的一部分:您可以在Ruby中定義<=>,然後自動定義==,>,<, > =和<=是否定義?

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 

在我看來,像應該有一個模塊,我可以包括能根據我<=>方法給我平等和比較操作。有一個嗎?

我猜很多人遇到這種問題。你通常如何解決它? (你如何使它幹?)

回答

13

是的只是include Comparable - 唯一的要求是有太空船<=>方法定義。

+0

啊太棒了!我知道會有一些東西,但搜索起來很難。 :P謝謝! – 2010-05-12 03:00:50

相關問題