Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Hashクラス > compare_by_identity
compare_by_identity -> self[permalink][rdoc]ハッシュのキーの一致判定をオブジェクトの同一性で判定するように変更します。
デフォルトでは、キーのオブジェクトによっては内容が同じならキーが一致しているとみなされますが、より厳密に 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?