Latest web development tutorials

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