【Ruby3.x】Array::each_index()メソッドの使い方
each_indexメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
each_indexメソッドは、RubyのArrayクラスに属しており、配列の各要素のインデックス(添字)を順番に取得し、指定されたブロックを実行するメソッドです。
このメソッドは、配列の先頭から末尾まで、0から始まる各インデックスを一つずつブロックに渡します。インデックスとは、配列の要素が格納されている位置を示す番号のことで、最初の要素のインデックスは0、次の要素は1、といった具合に割り振られています。
each_indexメソッドは、要素そのものの値には興味がなく、その位置情報に注目して処理を行いたい場合に特に役立ちます。例えば、配列の特定のインデックスに基づいて他の配列を更新したり、インデックスが偶数か奇数かによって処理を分けたりする場合などに利用できます。
このメソッドを使うことで、配列の要素に直接アクセスする必要がある場合でも、そのインデックスを通じて操作を行うことが可能です。同じく配列を繰り返すメソッドとしてArray#eachがありますが、eachメソッドが配列の各要素の値をブロックに渡すのに対し、each_indexメソッドはインデックスのみを渡す点が主な違いです。
ブロックが呼び出された後、each_indexメソッド自身は最終的に元の配列を返します。これにより、配列の構造に基づいた反復処理を、明確かつ簡潔に記述することができます。
構文(syntax)
1my_array = ["apple", "banana", "cherry"] 2my_array.each_index { |index| puts index }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array または Enumerator
Arrayクラスのeach_indexメソッドは、配列の各要素のインデックス(添え字)を順番に取得するイテレータを返します。ブロックが与えられた場合は、そのブロックを各インデックスに対して実行し、最終的に元の配列を返します。ブロックが与えられなかった場合は、インデックスを順番に生成するEnumeratorオブジェクトを返します。