Looking for ruby Keywords? Try Ask4Keywords

Ruby Language インデックスによる反復


時には、列挙子を反復処理しながら現在の要素の位置( インデックス )を知りたいことがあります。そのために、Rubyはwith_indexメソッドを提供しています。すべての列挙子に適用できます。基本的には、列挙にwith_indexを追加することによって、その列挙を列挙することができます。インデックスは第2引数としてブロックに渡されます。

[2,3,4].map.with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [nil, nil, nil]

with_indexにはオプションの引数があります。最初のインデックスはデフォルトで0です。

[2,3,4].map.with_index(1) { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 1 => 2
#Element of array number 2 => 3
#Element of array number 3 => 4
#=> [nil, nil, nil]

特定のメソッドeach_with_indexます。 each.with_indexの唯一の違いは、引数を渡すことができないため、最初のインデックスは常に0です。

[2,3,4].each_with_index { |e, i| puts "Element of array number #{i} => #{e}" }
#Element of array number 0 => 2
#Element of array number 1 => 3
#Element of array number 2 => 4
#=> [2, 3, 4]