Ruby“等同于”

时间:2008-08-30 03:04:55

标签: python ruby

Python的“is”是否有Ruby等价物?它测试两个对象是否相同(即具有相同的内存位置)。

2 个答案:

答案 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和其他人)。