💎

RubyのEnumeratorオブジェクトについて解説

2021/03/30に公開

Enumerator とは?

ざっくり言うと、Ruby で繰り返しを行いたいときに Enumerator オブジェクトが使われます。
例えば回数を繰り返したい数に times メソッドを付加すると、それはもう Enumerator オブジェクトになります。
※この説明は完全ではありませんがイメージとして掴むためには十分かと思います。

irb(main):031:0> 3.times
=> #<Enumerator: 3:times>

実際に繰り返し処理を行いたいとき

基本的には Enumerator オブジェクトを使いながら、ブロックを記述します。

irb(main):035:1* 3.times do |i|
irb(main):036:1*   puts i
irb(main):037:0> end
0
1
2
=> 3

i が変わりつつ 0, 1, 2 と増えながら繰り返されていることが分かりますね。

ブロック処理以外の繰り返し

中括弧でブロックを表現することもできます。

irb(main):038:0> 3.times { |num| puts num }
0
1
2
=> 3

一行で書けるときにはこういった書き方をすることがあるので、覚えておきましょう。

Discussion