2010-05-12 27 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

相关问题