2008-08-30 16 views
6

Python'un "olduğu" için bir Ruby eşdeğeri var mı? İki nesnenin aynı olup olmadığını test eder (yani aynı hafıza konumuna sahip).Ruby "is" eşdeğeri

cevap

12

kullanımı a.equal? b

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

== farklı

eşit? yöntem, alt sınıflar tarafından hiçbir zaman geçersiz kılınmamalıdır: nesne kimliğini (yani, a.equal? ​​(b) a) b) ile aynı nesne olarak belirlemek için kullanılır.

2

__id__'u da kullanabilirsiniz. Bu size her zaman benzersiz olan nesneleri iç kimlik numarası verir. nesneler aynıdır için, bu Ruby'nin standart kütüphane bildiğim kadarıyla söyleyebilirim (group_by ve diğerlerini bakınız) gibi bu yöntemi kullanıyor

a.__id__ = b.__id__

denemek olmadığını kontrol etmek.