📜  红宝石block_given?方法 - Ruby (1)

📅  最后修改于: 2023-12-03 15:41:13.898000             🧑  作者: Mango

Ruby中的红宝石block_given?方法

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方法内部判断是否接收了一个块,从而方便地编写支持块的代码。