我有一个 yield 方法,它看起来像:
def a_method(*params)
# do something
yield
# do something else
end
如果传入 block ,我希望此方法产生 block ;如果没有 block 传入,该方法应该悄悄地跳过 yield sentense 而不会崩溃:
no block given (yield) (LocalJumpError)
当然,最直接的方法就是把方法改成:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
但是没有更漂亮的方法吗?
最佳答案
是的! :)
def a_method(*params)
# ...
yield if block_given?
# ...
end
关于ruby - 当没有 block 传入时,有没有更好的方法来防止 'yield'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061266/