如何在Ruby中需要一个块?
有没有内置的方法来要求将块传递给Ruby方法? 我意识到如果block_given?
我可以提出exceptionblock_given?
是假的,但是有更好的方法吗?
只需使用yield
。
如果在方法中包含yield
,并且未给出块,则会引发错误。
把它放在一个文件中并运行它:
def needs_block yield end needs_block
它会抛出这样的错误:
LocalJumpError: no block given from (irb):14:in `needs_block' from (irb):16
raise 'need block' unless block_given?