2010-02-22 68 views

回答

22

只需使用yield即可。

如果在方法中包含yield,并且给定的块为而不是,则会引发错误。

在一个文件将这个并运行它:

def needs_block 
    yield 
end 

needs_block 

它会抛出这样的错误:

LocalJumpError: no block given 
    from (irb):14:in `needs_block' 
    from (irb):16 
+1

嗯,这是太简单了:)谢谢! – 2010-02-22 05:18:42

9
raise 'need block' unless block_given? 
+1

这是最好的答案,因为它没有副作用(即调用块)。 – 2016-07-07 10:03:11