【发布时间】:2014-02-26 14:50:56
【问题描述】:
我试图了解这个迭代器是如何工作的:
def two_times
yield
yield
end
two_times {puts "Hello"}
第二部分是否调用方法,然后yield调用{puts "Hello"}?
【问题讨论】:
-
我想知道是否删除了块代码 {puts "Hello"}。还能用吗。我只是尝试了一下,但我得到了一个错误——>没有给出块(yield)。所以,如果使用 yield 它需要那个块代码。
-
试试这个:
yield unless block_given?。如果没有给出块,它不会yield阻止。 -
我确实尝试过,但将其更改为 'yield if block_given?','unless' 仍然有错误
-
我的错。正如你所说,它应该是
if(yield if block_given?)。除非 = 如果不是。
标签: ruby methods iterator yield