根据docsArray.include?在对象上使用==比较.我来自Java,在Java中,这样的事情(通常)是用.equals()完成的,.equals()很容易为特定对象重写.

如何在Ruby中重写==,以便为特定对象指定Array.include?的行为?

推荐答案

在Ruby中,==只是一个方法(上面有一些语法糖,允许您编写foo == bar而不是foo.==(bar)),您可以像重写任何其他方法一样重写==:

class MyClass
  def ==(other_object)
    # return true if self is equal to other_object, false otherwise
  end
end

Ruby相关问答推荐

当数据包含换行符时,Ruby PKCS7 无法验证

碰撞检测测试中对象的 Nil 类

仅在模块中列出方法?

有没有一种简单的方法可以在 Ruby 中获取图像尺寸?

独立于 Rails 使用 HAML 文件中的布局

Ruby $:.unshift File.dirname(__FILE__)

如何在不将换行符粘贴到字符串中的情况下使用puts添加额外的换行符?

退出(exit)和中止(abort)有什么区别?

从索引到字符串结尾的子字符串的Ruby成语

如何在 Ruby 中解冻对象?

Ruby Koan 151 引发异常

覆盖子类中的 ruby​​ 常量,以便继承的方法使用新常量而不是旧常量?

Ruby数组限制方法

Ruby中的file.open、open和IO.foreach,有什么区别?

如何打破Ruby中的外循环?

如何在Ruby中获取给定月份的天数,占年份?

如何在不使用循环的情况下按数组中的计数分组

如何使用 Nokogiri 删除 node ?

如何在 Ruby 中获取堆栈跟踪对象?

要散列的散列数组