2008-08-30 20 views
6

¿Hay un equivalente de Ruby para el "es" de Python? Comprueba si dos objetos son idénticos (es decir, tienen la misma ubicación de memoria).Ruby "es" equivalente

Respuesta

12

Uso a.equal? b

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

== A diferencia, la igualdad? El método nunca debe ser anulado por subclases: se usa para determinar la identidad del objeto (es decir, a.equal? ​​(b) si f a es el mismo objeto que b).

2

También es posible usar __id__. Esto le proporciona el número de ID interno del objeto, que siempre es único. Para comprobar si los objetos son los mismos, tratar

a.__id__ = b.__id__

Ésta es la forma en la biblioteca estándar de Ruby lo hace por lo que yo puedo decir (ver group_by y otros).

Cuestiones relacionadas