defined?
変数が定義されているかどうかは、defined?演算子で調べられます。defined?はメソッドではありません。
if defined?(x) print "x is defined.\n" else print "x is not defined.\n" # こちら end x = nil if defined?(x) print "x is defined.\n" # こちら else print "x is not defined.\n" end
最後は受けねらいです。
puts defined?(nil) # => nil puts defined?(true) # => true puts defined?(false) # => false puts defined?(Integer) # => constant puts defined?(3) # => expression puts defined?(String) # => constant puts defined?("String") # => expression puts defined?(xxxx) # => nil puts defined?(puts) # => method puts defined?(defined?) # parse error, unexpected ')'