each_with_index で index の値を利用する時、 たとえば 0 ではなく 1 から使いたい場合… %w(杏子 さやか マミ).each_with_index {|magica, i| puts "#{i + 1} #{magica}" } # 1 杏子 # 2 さやか # 3 マミ とわざわざ +1 を書いたりするのはなんか面倒だ (´・ω・`) そんなときは Enumerator#with_index(offset = 0) の出番! 見ての通り、offset 値に任意の数値を指定できるのだ! Array#each をブロックなしで呼ぶと、Enumerator 型のオブジェクトが返ってくるので、 そいつに with_index を呼んでやる。 パッと見、each_with_index に見間違えそうなくらい、そっくりに書けるのが (個人的には) COOL♪