📅  最后修改于: 2023-12-03 15:41:13.898000             🧑  作者: Mango
Ruby中的block_given?方法可以用于判断当前方法是否接收了一个块。在方法内部,我们可以使用yield语句来调用这个块。block_given?方法可以确保当前方法是否确实接受了一个块。
在方法内部,我们可以使用下面的代码来判断当前方法是否接受了一个块:
def my_method
if block_given?
yield
else
puts "no block given"
end
end
在上面的例子中,如果my_method方法接收到了一个块,那么yield语句就会调用这个块。如果没有接收到块,则会输出"no block given"。
下面是一个更完整的示例:
def my_method
if block_given?
yield
else
puts "no block given"
end
end
my_method # 输出"no block given"
my_method { puts "block given" } # 输出"block given"
在上面的示例中,第一个my_method调用没有传递块,因此输出"no block given"。而第二次调用my_method时传递了一个块,因此输出"block given"。
block_given?方法可以用于在Ruby方法内部判断是否接收了一个块,从而方便地编写支持块的代码。