Rubyのイテレータ
簡単に言えば:イテレーション(反復)は、同じことを何度も繰り返すために使用される、同じことを繰り返すイテレータ(反復子)ようにすることを指します。
イテレータはサポートされているメソッドのコレクションです。 コレクションのメンバーと呼ばれるデータオブジェクトのセットを記憶します。 Rubyでは、アレイ(配列)とハッシュ(ハッシュ)は、コレクションと呼ばれることができます。
イテレータは、コレクションのすべての要素、一つ一つを返します。 ここでは、それぞれ2つの反復子を議論し、収集します。
Rubyの各イテレータ
各反復は、配列やハッシュのすべての要素を返します。
文法
collection.each do |variable| code end
コードの実行は、各要素のために設定されています。 ここでは、セットは、配列やハッシュすることができます。
例
#!/usr/bin/ruby ary = [1,2,3,4,5] ary.each do |i| puts i end
上の例の出力は実行します。
1 2 3 4 5
各反復は、常にブロックに関連付けられています。 これは、各ブロック、次々に値の配列を返します。 値は、変数iに格納され、その後、画面上に表示されます。
Rubyはイテレータを集めます
イテレータ返しますコレクションのすべての要素を収集します。
文法
collection = collection.collect
収集方法は、常にブロックに関連する必要はありません。 収集方法は、配列やハッシュであるかどうか、コレクション全体を返します。
例
#!/usr/bin/ruby a = [1,2,3,4,5] b = Array.new b = a.collect{ |x|x } puts b
上の例の出力は実行します。
1 2 3 4 5
注:収集方法は、アレイ間のレプリケーションを行うための正しい方法ではありません。別の配列に配列をコピーするための別のと呼ばれるcloneメソッドがあります。
あなたがそれぞれの新しい配列の値を得るために何かをしたいときは、通常の収集方法を使用します。 たとえば、次のコードは、値が各値の10倍である配列を生成します。
#!/usr/bin/ruby a = [1,2,3,4,5] b = a.collect{|x| 10*x} puts b
上の例の出力は実行します。
10 20 30 40 50