1

目前,如果它不存在,我会收到undefined local variable or method错误消息。

如何检查变量的值并说明它根本不存在。

我以为&&是交易,但是:

if defined? aaa && aaa == '123' then puts aaa end

NameError: undefined local variable or method `aaa' for main:Object
4

1 回答 1

8

在这种情况下,您需要括号,defined?(aaa)否则它会像评估整个表达式aaa && aaa == '123'一样评估它defined?(aaa && aaa == '123')。所以你的代码真的是这样做的:

if defined?(aaa && aaa == '123') # returns "expression" string, and thus true
  puts aaa # the error comes from this part, since aaa is not defined.
end
于 2012-08-23T19:20:12.567 回答