Ruby の Enumerable#each_with_index で index の初期値を指定する
Enumerable#each_with_index
を利用すると index を付属してループする事ができます。
["homu", "mami", "mado"].each_with_index { |it, i| puts "#{i} : #{it}" } # => 0 : homu # 1 : mami # 2 : mado
index の初期値を指定してループする
index の初期値を指定してループしたい場合、Enumerator#with_index
を利用する事ができます。
Enumerator
をオブジェクトは Enumerable#each_with_index
にブロックを渡さなかった場合に返ってくるので次のように記述することができます。
# #with_index の引数に index の初期値を渡す ["homu", "mami", "mado"].each.with_index(3) { |it, i| puts "#{i} : #{it}" } # => 3 : homu # 4 : mami # 5 : mado # #each_with_index と同じでブロックを渡さなかった場合、 # Enumerator のオブジェクトが返ってくる ["homu", "mami", "mado"].each.with_index(3).map { |it, i| "#{i} : #{it}" } # => ["3 : homu", "4 : mami", "5 : mado"]