Python的“is”是否有Ruby等价物?它测试两个对象是否相同(即具有相同的内存位置)。
答案 0 :(得分:12)
使用a.equal? b
http://www.ruby-doc.org/core/classes/Object.html
与==不同,相等?方法永远不应该被子类覆盖:它用于确定对象标识(即a.equal?(b)iff a是与b相同的对象)。
答案 1 :(得分:2)
您也可以使用__id__
。这为您提供了对象内部ID号,它始终是唯一的。要检查对象是否相同,请尝试
a.__id__ = b.__id__
就我所知,这就是Ruby的标准库所做的事情(见group_by
和其他人)。