Ruby中未定义的变量是否等于nil?

Ahm*_*ibi 6 ruby

我得到错误undefined variable,我知道如果用作布尔值,nil则进行评估false:

if y
  puts "Something"
end
Run Code Online (Sandbox Code Playgroud)

Ere*_*bih 17

未定义的变量不等于nil.

未定义的实例变量返回nil(同样,如果未定义).

y 提出异常

@y 返回零


Kul*_*ini 9

不,你会收到一个错误undefined local variable or method.但是,如果要检查是否定义了某些内容,可以使用这样的defined?方法

if defined?(my_var)
  print 'defined'
else
  print 'not defined'
end
Run Code Online (Sandbox Code Playgroud)


小智 6

这上面有一个轻微的皱纹。尝试这个:

if 5 == 0
   y = 'hi'
end

puts "hello" if y
Run Code Online (Sandbox Code Playgroud)

y已在if块中“定义”。删除该块会产生错误。