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