9

这是我的Note课的一部分:

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

在我看来,应该有一个可以包含的模块,它可以根据我的<=>方法为我提供相等和比较运算符。有吗?

估计很多人都会遇到这样的问题。你一般是怎么解决的?(你怎么让它变干?)

4

1 回答 1

13

include Comparable的,唯一的要求是<=>定义 spaceship 方法。

于 2010-05-12T02:57:12.793 回答