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

前端之家收集整理的这篇文章主要介绍了您可以在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 – 唯一的要求是拥有宇宙飞船< =>方法定义.
原文链接:https://www.f2er.com/ruby/266201.html

猜你在找的Ruby相关文章