【Ruby3.x】Array::fetch()メソッドの使い方
fetchメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
fetchメソッドは、Arrayクラスのインスタンスから、指定されたインデックス位置の要素を取得するメソッドです。このメソッドは、配列の要素にアクセスする際に、存在しないインデックスが指定された場合の挙動を細かく制御できる点が特徴です。
基本的な使い方は、引数に取得したい要素のインデックスを指定します。例えば、my_array.fetch(0)と記述すると、配列my_arrayの最初の要素を取得できます。
もし指定されたインデックスが存在しない場合、[](ブラケット)メソッドは通常nilを返しますが、fetchメソッドは異なる振る舞いをします。fetchメソッドの第2引数にデフォルト値を指定することで、インデックスが存在しない場合にそのデフォルト値を返すことができます。例えば、my_array.fetch(10, "指定なし")のように使用します。
さらに、デフォルト値の代わりにブロックを渡すことも可能です。この場合、インデックスが存在しないときにブロックが実行され、そのブロックの戻り値が結果として返されます。これは、動的なデフォルト値を生成したい場合に便利です。
もしインデックスが存在せず、かつデフォルト値もブロックも指定されていない場合、fetchメソッドはIndexError例外を発生させます。この機能により、開発者は配列の範囲外アクセスを早期に検知し、堅牢なプログラムを作成することが可能になります。
構文(syntax)
1[要素1, 要素2, ...].fetch(インデックス, デフォルト値)
引数(parameters)
index, default = nil
- index: 取得したい要素のインデックス(位置)を指定する整数
- default = nil: 指定したインデックスに要素が存在しない場合に返されるデフォルト値。省略すると
nilが返されます。
戻り値(return)
Object
指定されたインデックスに対応する要素を返します。インデックスが存在しない場合は、デフォルト値(指定された場合)を返すか、IndexError を発生させます。