【Ruby3.x】Hash::freeze()メソッドの使い方
freezeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
freezeメソッドは、レシーバーであるハッシュオブジェクトを凍結するメソッドです。このメソッドを実行すると、対象のハッシュは「凍結状態」となり、それ以降、そのハッシュに対する変更操作が一切できなくなります。具体的には、新しいキーと値のペアを追加したり、既存のキーに対する値を更新したり、あるいはキーと値のペアを削除したりすることが不可能になります。
freezeメソッドは破壊的メソッドであり、メソッドを呼び出したハッシュオブジェクト自体が凍結されます。一度凍結されたハッシュは、いかなる方法でも凍結状態を解除することはできません。もし凍結されたハッシュに対して変更を試みると、FrozenErrorというエラーが発生し、プログラムの実行が停止します。
この機能は、プログラム内で特定のハッシュの内容が意図せず変更されてしまうことを防ぎたい場合に非常に有用です。特に、複数の場所で共有される設定情報や定数のようなデータを扱う際に、誤った変更によるバグを防ぐ目的で利用されます。ただし、freezeメソッドによる凍結は、ハッシュの直接的な変更のみに適用され、ハッシュが保持する値がさらに別のオブジェクトである場合、その値オブジェクト自体は凍結されません。そのため、値オブジェクトが変更可能なものであれば、その値オブジェクト自体は別途変更されうる点に注意が必要です。
構文(syntax)
1my_hash = { key: "value" } 2my_hash.freeze
引数(parameters)
引数なし
引数はありません
戻り値(return)
self
Hashオブジェクト自身が返されます。