Рубиновый эквивалент - PullRequest
       24

Рубиновый эквивалент

7 голосов
/ 30 августа 2008

Есть ли Ruby-эквивалент для "is" в Python? Он проверяет, являются ли два объекта идентичными (то есть имеют одну и ту же ячейку памяти).

Ответы [ 2 ]

12 голосов
/ 30 августа 2008

Использование a.equal? b

http://www.ruby -doc.org / ядро ​​/ классов / object.html

В отличие от ==, равно? Метод никогда не должен быть переопределен подклассами: он используется для определения идентичности объекта (то есть a.equal? ​​(b), если a является тем же объектом, что и b).

2 голосов
/ 02 сентября 2008

Вы также можете использовать __id__. Это дает вам внутренний идентификационный номер объекта, который всегда уникален. Чтобы проверить, одинаковы ли объекты, попробуйте

a.__id__ = b.__id__

Это то, как стандартная библиотека Ruby делает это, насколько я могу судить (см. group_by и другие).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...