Rubyリファレンス: Home

enum_with_index (Enumerable)

Edit   History

Ruby 1.8.7 Ruby 1.9

標準クラス・モジュール > Enumerable > enum_with_index

enum.enum_with_index {|item, idx| block }

Ruby 1.8.7のenum_with_indexメソッドは、each_with_indexの別名です。ブロック引数itemに各要素を、idxには0、1、2、...と番号を入れてブロックを繰り返し実行します。ブロックを省略するとEnumeratorオブジェクトを返します。

Ruby 1.9でこの別名は廃止されました。

animals = ["dog", "cat", "mouse"]
animals.enum_with_index {|anim, i| puts "#{i+1}. #{anim}" }
1. dog
2. cat
3. mouse

Ruby 1.8.6では、enumeratorライブラリを読み込めばenum_with_indexメソッドが使えます。ブロックを渡さずに、戻り値のEnumeratorオブジェクトのeachメソッドを利用します。

require "enumerator"
animals = ["dog", "cat", "mouse"]
animals.enum_with_index.each {|anim, i| puts "#{i+1}. #{anim}" }
1. dog
2. cat
3. mouse

関連項目