【Ruby3.x】Enumerator::with_index()メソッドの使い方
with_indexメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
with_indexメソッドは、繰り返し処理を行うオブジェクト(Enumerator)の各要素に対して、その要素が何番目(インデックス)であるかという情報を付加して取得できるようにするメソッドです。このメソッドを呼び出すと、元の繰り返し処理から得られる各要素と、その要素に対応する0から始まるインデックスをペアとして順に生成する新しいEnumeratorオブジェクトを返します。
もしwith_indexメソッドにブロックが与えられた場合、返される新しいEnumeratorオブジェクトではなく、元の繰り返し処理の各要素とインデックスのペアをブロックに渡して処理を実行します。これにより、配列やコレクションの要素を順に処理しながら、同時にその位置情報も利用したい場合に非常に便利です。
また、with_indexメソッドはオプションでoffset引数を受け取ることができます。offsetに数値を指定すると、インデックスの開始位置を0ではなく、指定した数値から始めることが可能です。例えば、リストを1番目から数えたい場合などに利用できます。このメソッドは、繰り返し処理において要素の値だけでなく、その順序や位置情報も同時に必要となる場面で、コードの可読性と簡潔さを向上させるために活用されます。
構文(syntax)
1['apple', 'banana', 'cherry'].each.with_index do |fruit, index| 2 puts "Fruit #{fruit} is at index #{index}." 3end
引数(parameters)
offset = 0
- offset = 0: 最初の要素のインデックスを指定します。デフォルトは0です。
戻り値(return)
Enumerator
このメソッドは、元のEnumeratorをラップし、各要素とそのインデックス(0から始まる連番)をペアにした新しいEnumeratorを返します。