Ruby 4.0 リファレンスマニュアル

instance method Binding#local_variable_defined?

local_variable_defined?(symbol) -> boolRuby 2.1.0 から[permalink][rdoc][edit]

引数 symbol で指定した名前のローカル変数が定義されている場合に true を、そうでない場合に false を返します。

[PARAM] symbol:
ローカル変数名を Symbol オブジェクトで指定します。
[EXCEPTION] NameError:
番号指定パラメータ(_1 など)を指定した場合に発生します。
def foo
  a = 1
  p binding.local_variable_defined?(:a) # => true
  p binding.local_variable_defined?(:b) # => false
end

このメソッドは以下のコードの短縮形です。

binding.eval("defined?(#{symbol}) == 'local-variable'")

[SEE_ALSO] Binding#local_variable_get, Binding#local_variable_set