【Ruby3.x】Hash::default_proc=()メソッドの使い方
default_proc=メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
default_proc=メソッドは、ハッシュに存在しないキーが参照された場合に実行される処理を設定するメソッドです。
このメソッドを使用すると、あらかじめハッシュに登録されていないキーを呼び出した際に、どのような値を返すか、あるいはどのような処理を行うかを柔軟に制御できます。引数には、Procオブジェクト、またはブロックを渡します。設定されたProcオブジェクトやブロックは、ハッシュが存在しないキーで参照されたときに自動的に呼び出されます。その際、呼び出されたハッシュ自身と、存在しないキーの二つが引数として渡されます。
そして、このProcオブジェクトやブロックが返した値が、その参照されたキーに対する値として扱われます。例えば、キーが存在しない場合に、そのキーに応じた新しいデータを動的に生成して返す、といった使い方が可能です。これは、単一の固定値を返すdefault=メソッドとは異なり、キーごとに異なる動的な初期値を設定したり、複雑な初期化処理を実行したりする場合に非常に役立ちます。これにより、必要な時にだけ値を生成する遅延初期化などのパターンも実現できるようになります。
構文(syntax)
1my_hash = {} 2my_hash.default_proc = proc do |hash_obj, key_accessed| 3 "Default value for #{key_accessed}" 4end
引数(parameters)
proc
- proc: デフォルト値として使用されるProcオブジェクト
戻り値(return)
Proc または nil
Hashオブジェクトのデフォルト値を生成するためのProcオブジェクト、またはnilを設定します。指定されたProcオブジェクト、またはnilが返されます。