Ruby で freeze メソッドを使用する
Hassan Ejaz 2024年2月15日 Ruby Ruby Method

この記事では、Ruby のオブジェクトに freeze
メソッドを使用する方法を紹介します。
Ruby で freeze
メソッドを使用する
オブジェクトを変更したくない場合は、Ruby の freeze
メソッドを使用できます。オブジェクトを変更できないようにします。このメソッドを使用すると、不変オブジェクトをすばやく生成できます。
freeze
メソッドが適用されているオブジェクトを変更しようとすると、プログラムはエラーを表示します。配列で freeze
メソッドを使用する場合を以下に示します。
# Ruby fruits = ["orange","banana","strawberry"] fruits.freeze fruits <<"watermelon"
このコードを実行しようとすると、エラーが発生します。文字列の場合、freeze
メソッドの使用法を以下に示します。
# Ruby str = "Hey" str.freeze str <<" How are you?"
これにより、ランタイムエラーも表示されます。オブジェクトの場合、freeze
メソッドの使用法を以下に示します。
# Ruby class Fruits def initialize(name) @name = name end def get_name return @name end def set_name(name) @name = name end end a = Fruits.new("apple") a.freeze a.set_name("melon") puts a.get_name
出力:
上記の例では、オブジェクトが freeze
メソッドによって既にフリーズされているときにオブジェクトを変更しようとしたため、エラーが発生しました。
Ruby の freeze
メソッドの制限
freeze
メソッドにはいくつかの制限があります。フリーズされたオブジェクトに関連する変数を変更できることを理解することが重要です。
これは、このメソッドを使用してオブジェクトをフリーズしただけだからです。これらのオブジェクトに関連する変数は自由に変更できます。
これは、同じ変数にアクセスして、フリーズしたオブジェクトを新しいものに変更する方法を示す例です。
# Ruby str = "Hey James" str.freeze str = "Hey Petr" puts str
出力:
freeze
メソッドを使用して、オブジェクトが不変であるかどうかを確認できます。
# Ruby str2 = "Hey Julia" str2.freeze str4 = "Julia is very nice" num = 120.5 num.freeze
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe