【发布时间】:2010-09-07 07:55:41
【问题描述】:
Python 的“is”是否有 Ruby 等价物?它测试两个对象是否相同(即具有相同的内存位置)。
【问题讨论】:
Python 的“is”是否有 Ruby 等价物?它测试两个对象是否相同(即具有相同的内存位置)。
【问题讨论】:
使用a.equal? b
http://www.ruby-doc.org/core/classes/Object.html
与 == 不同,相等?方法永远不应该被子类覆盖:它用于确定对象身份(即,a.equal?(b) iff a 与 b 是同一个对象)。
【讨论】:
您也可以使用__id__。这为您提供了对象的内部 ID 号,它始终是唯一的。要检查对象是否相同,请尝试
a.__id__ = b.__id__
据我所知,这就是 Ruby 标准库的工作方式(参见 group_by 和其他人)。
【讨论】: