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

11

我得到了一个错误,内容是undefined variable。我知道当使用nil作为布尔值时,它会被转换为false

if y
  puts "Something"
end

两个答案都是正确的,请参考此主题的更多详细信息:http://www.rubyist.net/~slagell/ruby/localvars.html - Pritesh Jain
3个回答

20

未定义的变量不等于nil。

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

y会引发异常

@y返回nil


11
不会,你会得到一个错误信息:“undefined local variable or method”。但是,如果你想检查某个变量或方法是否已定义,可以使用defined?方法,例如:
if defined?(my_var)
  print 'defined'
else
  print 'not defined'
end

6

这里有一个小问题。尝试以下操作:

if 5 == 0
   y = 'hi'
end

puts "hello" if y

yif块中被“定义”了。移除该块将导致错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接