文字列応用レベル
Ruby の freeze メソッドの役割はどれですか?
- 1オブジェクトをコピーして変更不可にする
- 2オブジェクト自体を変更不可(イミュータブル)にする
- 3オブジェクトを nil にする
- 4クラスの継承を禁止する
解説
freeze を呼ぶとオブジェクト自体が凍結され、以降の変更操作で FrozenError が発生します。Ruby 3.0 以降では文字列リテラルはデフォルトでフリーズされていません(frozen_string_literal: true マジックコメントで有効化可能)。