35
我有产率,它看起来像一个方法:有没有更好的方法来防止没有块传入时的“收益”?
def a_method(*params)
# do something
yield
# do something else
end
我想如果一个块被传入该方法以得到所述块;如果没有块被传入,该方法应该sliently跳过产量sentense不喜欢的东西崩溃:
no block given (yield) (LocalJumpError)
当然,最直接的方法是改变方法:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
但没有更漂亮的方法吗?
请注意,它也比捕获一个块(使用'&block')更快。 –
酷!非常感谢! – Tao
我吓坏了,总是忘记'block_given'的名字? –