Ruby-iterators
提供:Dev Guides
Ruby-イテレーター
イテレータは、_collections_がサポートするメソッドに他なりません。 データメンバーのグループを格納するオブジェクトは、コレクションと呼ばれます。 Rubyでは、配列とハッシュをコレクションと呼ぶことができます。
イテレータは、コレクションのすべての要素を順番に返します。 ここでは、_each_と_collect_の2つのイテレータについて説明します。 これらを詳しく見てみましょう。
Ruby各イテレーター
各反復子は、配列またはハッシュのすべての要素を返します。
構文
collection.each do |variable|
code
end
_collection_の各要素に対して_code_を実行します。 ここで、_collection_は配列またはルビーハッシュにすることができます。
例
#!/usr/bin/ruby
ary = [1,2,3,4,5]
ary.each do |i|
puts i
end
これは、次の結果を生成します-
1
2
3
4
5
常に_each_イテレータをブロックに関連付けます。 配列の各値を1つずつブロックに返します。 値は変数 i に保存され、画面に表示されます。
Rubyはイテレーターを収集します
_collect_イテレータは、コレクションのすべての要素を返します。
構文
collection = collection.collect
_collect_メソッドは、必ずしもブロックに関連付けられる必要はありません。 _collect_メソッドは、配列かハッシュかに関係なく、コレクション全体を返します。
例
#!/usr/bin/ruby
a = [1,2,3,4,5]
b = Array.new
b = a.collect
puts b
これは、次の結果を生成します-
1
2
3
4
5
注-_collect_メソッドは、配列間でコピーを行う正しい方法ではありません。 _clone_と呼ばれる別のメソッドがあります。これは、ある配列を別の配列にコピーするために使用する必要があります。
通常、各値を使用して新しい配列を取得する場合は、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