Ruby是否提供任何机制来允许迭代器从yield
来自另一个迭代器的所有值? (或“subiterator”,我不确定正确的名称是什么)。与Python3.3 +的yield from
def f
yield 'a'
yield 'b'
end
def g
# yield everything from f
yield 'c'
yield 'd'
end
答案 0 :(得分:4)
这可能是最惯用的方法:
def f
yield 'a'
yield 'b'
end
def g(&block)
f(&block)
yield 'c'
yield 'd'
end
答案 1 :(得分:3)
一种方法是:
def f
yield 'a'
yield 'b'
end
def g
f &Proc.new # 'duplicate' the block given to g and pass it to f
yield 'c'
yield 'd'
end