外部イテレーター
参考:
Ruby でのイテレータを使った繰り返し #2 – vivid memo
外部イテレーターを使って並列イテレーションを実現する – せかいや
Ruby で外部イテレータを使う – Camera Obscura
instance method Enumerator#each (Ruby 2.5.0)
instance method Enumerator#next (Ruby 2.5.0)
instance method Enumerator#peek (Ruby 2.5.0)
next
「次」のオブジェクトを返します。
現在までの列挙状態に応じて「次」のオブジェクトを返し、列挙状態を1つ分進めます。列挙が既に最後へ到達している場合は、StopIteration 例外を発生します。このとき列挙状態は変化しません。つまりもう一度 next を呼ぶと再び例外が発生します。
※ Kernel.#loop は StopIteration を捕捉します。
next メソッドによる外部列挙の状態は他のイテレータメソッドによる内部列挙には影響を与えません。ただし、IO#each_line のように大元の列挙メカニズムが副作用を伴っている場合には影響があり得ます。
str = "xyz" enum = str.each_byte loop do puts enum.next end # => 120 # 121 # 122
参考:
instance method Enumerator#next (Ruby 2.5.0)
Ruby 1.9のEnumeratorによる繰り返し処理 — ぺけみさお
feed
参考: