9

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

if y
  puts "Something"
end
4

3 回答 3

19

未定义的变量不等于 nil。

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

y引发异常

@y返回零

于 2012-08-07T09:30:15.860 回答
11

不,你会得到一个错误undefined local variable or method。但是如果你想检查是否定义了某些东西,你可以使用defined?这样的方法

if defined?(my_var)
  print 'defined'
else
  print 'not defined'
end
于 2012-08-07T09:30:03.930 回答
6

这有一点点皱纹。试试这个:

if 5 == 0
   y = 'hi'
end

puts "hello" if y

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

于 2014-07-12T15:58:12.893 回答