Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Enumerator::Yielderクラス

class Enumerator::Yielder

クラスの継承リスト: Enumerator::Yielder < Object < Kernel < BasicObject

要約

Enumerator.new で使われるクラスで、直接使うものではありません。

目次

インスタンスメソッド
<< yield

インスタンスメソッド

self << object -> ()[permalink][rdoc]

Enumerator.new で使うメソッドです。

生成された Enumerator オブジェクトの each メソッドを呼ぶと Enumerator::Yielder オブジェクトが渡されたブロックが実行され、 ブロック内の << が呼ばれるたびに each に渡されたブロックが << に渡された値とともに繰り返されます。



enum = Enumerator.new do |y|
  y << 1
  y << 2
  y << 3
end

enum.each do |v|
  p v
end
# => 1
#    2
#    3
yield(*object) -> ()[permalink][rdoc]

Enumerator.new で使うメソッドです。

生成された Enumerator オブジェクトの each メソッドを呼ぶと Enumerator::Yielder オブジェクトが渡されたブロックが実行され、 ブロック内の yield メソッドが呼ばれるたびに each に渡された ブロックが yield メソッドに渡された値とともに繰り返されます。



enum = Enumerator.new do |y|
  y.yield 1, 2, 3
end

enum.each do |x, y, z|
  p [x, y, z]
end
# => [1, 2, 3]