Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumeratorクラス > with_index
with_index(offset = 0) {|(*args), idx| ... } -> object
[permalink][rdoc]with_index(offset = 0) -> Enumerator
生成時のパラメータに従って、要素にインデックスを添えて繰り返します。 インデックスは offset から始まります。
ブロックを指定した場合の戻り値は生成時に指定したレシーバ自身です。
例:
str = "xyz" enum = Enumerator.new(str, :each_byte) enum.with_index {|byte, idx| p [byte, idx] } # => [120, 0] # [121, 1] # [122, 2] require "stringio" StringIO.new("foo|bar|baz").each("|").with_index(1) {|s, i| p [s, i] } # => ["foo|", 1] # ["bar|", 2] # ["baz", 3]
生成時のパラメータに従って、要素にインデックスを添えてブロックを繰り返します。 インデックスは 0 から始まります。 Enumerator#with_index は offset 引数を受け取りますが、 each_with_index は受け取りません (引数はイテレータメソッドにそのまま渡されます)。