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'的名字? –