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 に答える