Ruby で freeze メソッドを使用する

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

この記事では、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 

出力:

Ruby のフリーズメソッド

上記の例では、オブジェクトが freeze メソッドによって既にフリーズされているときにオブジェクトを変更しようとしたため、エラーが発生しました。

Ruby の freeze メソッドの制限

freeze メソッドにはいくつかの制限があります。フリーズされたオブジェクトに関連する変数を変更できることを理解することが重要です。

これは、このメソッドを使用してオブジェクトをフリーズしただけだからです。これらのオブジェクトに関連する変数は自由に変更できます。

これは、同じ変数にアクセスして、フリーズしたオブジェクトを新しいものに変更する方法を示す例です。

# Ruby  str = "Hey James" str.freeze  str = "Hey Petr"  puts str 

出力:

Ruby のフリーズメソッドの制限

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

関連記事 - Ruby Method