instance method · added in Ruby 4.0
Binding#implicit_parameters
binding.implicit_parameters → Array
proc.c
View on GitHub ↗
static VALUE
bind_implicit_parameters(VALUE bindval)
{
const rb_binding_t *bind;
const rb_env_t *env;
GetBindingPtr(bindval, bind);
env = VM_ENV_ENVVAL_PTR(vm_block_ep(&bind->block));
if (get_local_variable_ptr(&env, idItImplicit, FALSE)) {
return rb_ary_new_from_args(1, ID2SYM(idIt));
}
env = VM_ENV_ENVVAL_PTR(vm_block_ep(&bind->block));
return rb_vm_env_numbered_parameters(env);
}
Returns the names of numbered parameters and “it” parameter that are defined in the binding.
Example
def foo [42].each do it binding.implicit_parameters #=> [:it] end { k: 42 }.each do _2 binding.implicit_parameters #=> [:_1, :_2] end end
Ruby version changes
-
4.0
-
Binding#implicit_parameters,Binding#implicit_parameter_get, andBinding#implicit_parameter_defined?have been added to access numbered parameters and “it” parameter. [Bug #21049]
-