Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Hashクラス > compare_by_identity

instance method Hash#compare_by_identity

compare_by_identity -> self[permalink][rdoc]

ハッシュのキーの一致判定をオブジェクトの同一性で判定するように変更します。

デフォルトでは、キーのオブジェクトによっては内容が同じならキーが一致しているとみなされますが、より厳密に Object#object_idが一致しているかどうかを条件とするようにselfを変更します。

selfが変化する破壊的メソッドです。

[RETURN]
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?