Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

instance method

Kernel#block_given?

() -> bool
block_given? → true or false

Returns true if yield would execute a block in the current context. The iterator? form is mildly deprecated.

Example
def try
  if block_given?
    yield
  else
    "no block"
  end
end
try                  #=> "no block"
try { "hello" }      #=> "hello"
try do "hello" end   #=> "hello"
See also #binding #callcc #autoload_relative #__callee__ also in 4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0