Ruby イテレータ
簡単に言うと、反復(iterate)とは同じことを繰り返すことを指します。つまり、イテレータ(iterator)は同じことを何度も繰り返すために使われます。
イテレータはコレクションがサポートするメソッドです。データメンバーのグループを格納するオブジェクトをコレクションと呼びます。Rubyでは、配列(Array)とハッシュ(Hash)をコレクションと呼ぶことができます。
イテレータはコレクションのすべての要素を1つずつ返します。ここでは、2種類のイテレータについて説明します。eachとcollect。
Ruby eachイテレータ
each イテレータは、配列またはハッシュのすべての要素を返します。
構文
ためにコレクション内の各要素に対して実行code。ここでは、コレクションは配列またはハッシュにすることができます。
上記の例の実行結果は次のとおりです。
1 2 3 4 5
eachイテレータは常にブロックと関連付けられます。イテレータは配列の各値を1つずつブロックに返します。値は変数に格納されi、その後画面に表示されます。
Ruby collectイテレータ
collectイテレータはコレクションのすべての要素を返します。
構文
collectメソッドは常にブロックと関連付ける必要はありません。collectメソッドは、配列であろうとハッシュであろうと、コレクション全体を返します。
例
上記の例の実行結果は次のとおりです。
1 2 3 4 5
注意:collectメソッドは配列間のコピーを行う正しい方法ではありません。ここに、別のメソッドがあります。cloneこのメソッドは、配列を別の配列にコピーするために使用されます。
各値に対して何らかの操作を行い、新しい配列を取得したい場合、通常は collect メソッドを使用します。例えば、次のコードは、a の各値の10倍を値とする配列を生成します。
上記の例の実行結果は次のとおりです。
10 20 30 40 50その他の拡張