2008-08-30 13 views
6

Pythonの "is"に相当するRubyはありますか? 2つのオブジェクトが同一である(すなわち、同じメモリ位置を有する)か否かを検査する。 ==とは異なりRubyは "相当"です

答えて

12

使用a.equal? b

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

、等しいですか?メソッドはサブクラスによってオーバーライドされるべきではありません。オブジェクトアイデンティティを決定するために使用されます(つまり、a.equal?(b)iff aはbと同じオブジェクトです)。

2

また、__id__を使用することもできます。これにより、常に固有の内部ID番号のオブジェクトが得られます。オブジェクトに同じかどうかを確認するには、

a.__id__ = b.__id__

を試してみてくださいこれは、Rubyの標準ライブラリは、私の知る限り(group_byなどを参照)言うことができるようにそれをしない方法です。

関連する問題