Ruby-イテレータ
イテレータは、コレクションでサポートされているメソッドに他なりません。データメンバーのグループを格納するオブジェクトは、コレクションと呼ばれます。Rubyでは、配列とハッシュはコレクションと呼ばれます。
イテレータは、コレクションのすべての要素を次々に返します。ここでは、それぞれとcollectの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
常に各イテレータをブロックに関連付けます。配列の各値を1つずつブロックに返します。値は変数に格納されますi その後、画面に表示されます。
Ruby収集イテレータ
コレクト反復子は、コレクションのすべての要素を返します。
構文
collection = collection.collect
収集方法は、常にブロックに関連する必要はありません。収集方法にかかわらず、それが配列やハッシュであるかどうかの、全体のコレクションを返します。
例
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = Array.new
b = a.collect
puts b
これにより、次の結果が生成されます-
1
2
3
4
5
NOTE− collectメソッドは、配列間でコピーを行う正しい方法ではありません。クローンと呼ばれる別の方法があります。これは、ある配列を別の配列にコピーするために使用する必要があります。
通常、各値を使用して新しい配列を取得する場合は、collectメソッドを使用します。たとえば、このコードは、aの各値の10倍を含む配列bを生成します。
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = a.collect{|x| 10*x}
puts b
これにより、次の結果が生成されます-
10
20
30
40
50