ruby:检查两个变量是否是同一个实例

标签 ruby object comparison

我有一个类Issue其中每个类都有一个 key field 。因为key s 意味着是唯一的,我覆盖了比较运算符,使得两个 Issue对象根据 key 进行比较像这样:

def ==(other_issue)
  other_issue.key == @key
end

但是,我正在处理这样一种情况,其中可能有两个变量引用 Issue 的同一个实例。 , 因此按键比较不会区分它们。有什么方法可以检查这两个变量是否指向同一个地方?

最佳答案

根据 the source , Object#equal? 方法应该做你想做的事情:

// From object.c
rb_obj_equal(VALUE obj1, VALUE obj2)
{
    if (obj1 == obj2) return Qtrue;
    return Qfalse;
}

所以你要写的 ruby​​ 代码是:

obj1.equal?(obj2)

关于ruby:检查两个变量是否是同一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571556/

相关文章:

javascript - 无法在状态修改方法中访问状态对象的对象属性(TypeError)

javascript - 类型错误 : Cannot read property 'foo' of null - Object, react

java - 比较 JAVA 中的 NotesDateTime

c - *完全*相等的 double 为 (a==b) 返回 0

ruby - 在任意位置设置哈希值

ruby 性能 : define method with define_method or eval

ruby-on-rails - Prawn 生成文档出现 "error exists on this page"PDF错误如何解决?

ruby - 如何在 Ruby 中对数组中的对象的属性求和

c# - 如何在泛型方法中比较两个值?

javascript - 我的简单 Ruby on Rails 应用程序确实有问题