【发布时间】:2018-01-26 09:06:03
【问题描述】:
每当我将一个块传递给 Ruby 中的 yield 方法时,我都想知道该块是否真的被执行了。例如:
def yield_method(list)
list.each do |item|
yield item
end
end
yield_method(ARGV) { |item|
print item
}
print "executed"
我想要的
print "executed"
仅当传递给 yield 方法的块被执行时才运行的语句
【问题讨论】:
-
在这种情况下,您已经知道调用了该块,否则会出现 LocalJumpError(“No Block Given”)。如果您使用
yield(item) if block_given?,那将是另一回事。 -
@maxpleaner
yield如果list为空,则不会被调用。 -
或许你可以使用these Rspec tests。