您可以在Ruby中定义<=>,然后自动定义==,>,<,> =和<=?

这是我的Note类的一部分:
class Note
  attr_accessor :semitones,:letter,:accidental

  def initialize(semitones,letter,accidental = :n)
    @semitones,@letter,@accidental = semitones,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

在我看来,像应该有一个模块,我可以包括,可以给我我的平等和比较运算符基于我的< =>方法.有没有?

我猜想很多人遇到这样的问题.你通常如何解决它? (你如何使它干燥?)

解决方法

只是包括Comparable – 唯一的要求是拥有宇宙飞船< =>方法定义.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...