我有一个产生的方法,看起来像:
def a_method(*params)
# do something
yield
# do something else
end
Run Code Online (Sandbox Code Playgroud)
如果传入一个块,我希望这个方法产生块; 并且如果没有传入块,该方法应该轻易地跳过yield sentense而不会崩溃,例如:
no block given (yield) (LocalJumpError)
Run Code Online (Sandbox Code Playgroud)
当然,最直接的方法是将方法更改为:
def a_method(*params, &block)
# do something
yield if block
# do something else
end
Run Code Online (Sandbox Code Playgroud)
但是不是更漂亮的方式吗?
Mat*_*chu 72
是! :)
def a_method(*params)
# ...
yield if block_given?
# ...
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8731 次 |
最近记录: |