Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library _builtin > class Hash > compare_by_identity
compare_by_identity -> self
ハッシュのキーの一致判定をオブジェクトの同一性で判定するように変更します。
デフォルトでは、キーのオブジェクトによっては内容が同じならキーが一致しているとみなされますが、より厳密に Object#object_idが一致しているかどうかを条件とするようにselfを変更します。
selfが変化する破壊的メソッドです。
h1 = { "a" => 100, "b" => 200, :c => "c" } p h1.compare_by_identity? #=> false p h1["a"] #=> 100 h1.compare_by_identity p h1.compare_by_identity? #=> true p h1["a"] #=> nil # この"a"と最初の"a"とは違うオブジェクト p h1[:c] #=> "c" # 同じ内容のシンボルはすべて同一
[SEE_ALSO] Hash#compare_by_identity?