9

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

4

2 回答 2

13

采用a.equal? b

http://www.ruby-doc.org/core/classes/Object.html

不像==,等于?方法永远不应该被子类覆盖:它用于确定对象身份(即,a.equal?(b) iff a 与 b 是同一个对象)。

于 2008-08-30T03:06:02.310 回答
2

你也可以使用__id__. 这为您提供了对象的内部 ID 号,它始终是唯一的。要检查对象是否相同,请尝试

a.__id__ = b.__id__

据我所知,这就是 Ruby 标准库的工作方式(参见group_by和其他)。

于 2008-09-02T09:02:34.940 回答