Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Array::freeze()メソッドの使い方

freezeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

freezeメソッドは、レシーバであるArrayオブジェクトを凍結するメソッドです。配列が凍結されると、それ以降、その配列オブジェクトに対して要素の追加、削除、変更といった破壊的な操作を行うことができなくなります。具体的には、pushやpop、[]=、clear!などの配列の内容を変更するメソッドを呼び出すと、FrozenErrorが発生します。

このメソッドは、配列が意図せず変更されることを防ぎ、プログラムの安全性を高める目的で使用されます。例えば、一度初期化されたデータが以降変更されてはならない場合にfreezeを適用することで、誤った変更によるバグを防ぐことができます。freezeを呼び出した配列は、frozen?メソッドを実行するとtrueを返します。

freezeメソッドが影響するのはレシーバの配列オブジェクト自体であり、配列が保持している各要素のオブジェクト自体は凍結されません。したがって、配列の要素が別のオブジェクトである場合、その要素オブジェクトの内容はfreezeメソッドを呼び出しても変更可能ですので注意が必要です。このメソッドは、呼び出した配列オブジェクト自身を返します。プログラムの途中で、配列が変更されると問題が生じる可能性がある場合に活用してください。

構文(syntax)

1[1, 2, 3].freeze

引数(parameters)

引数なし

引数はありません

戻り値(return)

Array

Array#freezeメソッドは、レシーバとなった配列オブジェクト自身を凍結状態にします。凍結された配列は変更不可能となり、要素の追加、削除、置換などを行うとFrozenErrorが発生します。このメソッドは、変更不可能な配列オブジェクト自身を返します。

関連コンテンツ

関連プログラミング言語