Ruby中的"is"等价物
在Ruby中,有没有类似于Python里“is”的东西?这个“is”用来检查两个对象是否完全相同,也就是说,它们是不是在内存中占据同一个位置。
2 个回答
2
你也可以使用 __id__
。这个东西会给你对象的内部ID号码,这个号码是唯一的。要检查两个对象是否相同,可以试试下面的方式:
a.__id__ = b.__id__
根据我的了解,这就是Ruby标准库的做法(可以看看 group_by
以及其他的)。
13
使用 a.equal? b
http://www.ruby-doc.org/core/classes/Object.html
跟 == 不一样,equal? 这个方法不应该被子类重写:它是用来判断对象是否相同的(也就是说,只有当 a 和 b 是同一个对象时,a.equal?(b) 才会返回真)。