我有一个产生的方法,看起来像:
def a_method(*params)
# do something
yield
# do something else
end
如果传入一个块,我希望这个方法产生块;如果没有传入块,该方法应该轻易跳过yield sentense而不会崩溃,如:
no block given (yield) (LocalJumpError)
当然,最直接的方法是将方法更改为:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
但是不是更漂亮的方式吗?
答案 0 :(得分:70)
是的! :)
def a_method(*params)
# ...
yield if block_given?
# ...
end