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

instance method Hash#rehash

rehash -> self[permalink][rdoc]

キーのハッシュ値を再計算します。

キーになっているオブジェクトの内容が変化した時など、 ハッシュ値が変わってしまった場合はこのメソッドを使ってハッシュ値を再計算しない 限り、そのキーに対応する値を取り出すことができなくなります。

[EXCEPTION] RuntimeError:
Hash#eachなどのイテレータの評価途中でrehashすると発生します。
[RETURN]
selfを返します。
a = [ "a", "b" ]
h = { a => 100 }

p h[a]       #=> 100

a[0] = "z"
p h[a]       #=> nil

h.rehash
p h[a]       #=> 100

[SEE_ALSO] Object#hash