1. ホーム
  2. ruby

[解決済み] ルビーeach_with_indexオフセット

2023-05-17 18:56:37

質問

each_with_index ループのイテレータでインデックスのオフセットを定義することはできますか? 私のストレートフォワードの試みは失敗しました。

some_array.each_with_index{|item, index = 1| some_func(item, index) }

編集する

明確化しました。配列のオフセットではなく、each_with_index内のインデックスが0からではなく、例えば1から始まるようにしたいのです。

どのように解決するのですか?

実は Enumerator#with_index はオプションのパラメータとして offset を受け取ります。

[:foo, :bar, :baz].to_enum.with_index(1).each do |elem, i|
  puts "#{i}: #{elem}"
end

の出力があります。

1: foo
2: bar
3: baz

ちなみに、1.9.2のみであると思います。