微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

您可以在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.jb51.cc/ruby/266201.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐