【Ruby3.x】Hash::fetch()メソッドの使い方
fetchメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
fetchメソッドは、ハッシュから指定したキーに対応する値を取得するメソッドです。基本的な使い方は、ハッシュ.fetch(キー) のように呼び出します。
このメソッドの最大の特徴は、指定したキーがハッシュ内に存在しない場合の挙動にあります。通常の[]メソッドでキーが見つからない場合、nilが返されますが、fetchメソッドはデフォルトでKeyErrorという例外を発生させます。これは、プログラムが意図しないnil値によるバグを防ぎ、キーの存在を明確に確認したい場合に特に役立ちます。
キーが存在しない場合に例外を発生させず、特定のデフォルト値を返したい場合は、第二引数にその値を指定できます。例えば、ハッシュ.fetch(キー, デフォルト値) と記述すると、キーが存在しない場合に指定したデフォルト値が返されます。
さらに柔軟な処理を行いたい場合は、ブロックを渡すことができます。ハッシュ.fetch(キー) { |キー| ブロックの処理 } のように記述すると、キーが見つからなかった際にブロックが実行され、そのブロックの戻り値が結果として返されます。このブロックには、見つからなかったキー自体が引数として渡されるため、それを利用して動的にデフォルト値を生成することも可能です。
このように、fetchメソッドはハッシュから値を取得する際に、キーの存在しないケースに対する安全かつ明確な対処方法を提供し、堅牢なプログラミングをサポートします。
構文(syntax)
1my_hash = { name: "Alice", age: 30 } 2value = my_hash.fetch(:city, "Unknown")
引数(parameters)
key, default = nil
- key: 取得したい値に対応するキー
- default = nil: 指定したキーが存在しない場合に返されるデフォルト値。指定しない場合はnilが返される
戻り値(return)
Object
指定されたキーに対応する値、またはデフォルト値があればその値を返します。キーが存在しない場合は、引数で指定されたデフォルト値、または例外を返します。