現在、存在しない場合、undefined local variable or method
エラーが発生します。
変数の値を確認し、それがまったく存在しないことを説明するにはどうすればよいですか。
&&
私は取引だと思ったが:
if defined? aaa && aaa == '123' then puts aaa end
NameError: undefined local variable or method `aaa' for main:Object
現在、存在しない場合、undefined local variable or method
エラーが発生します。
変数の値を確認し、それがまったく存在しないことを説明するにはどうすればよいですか。
&&
私は取引だと思ったが:
if defined? aaa && aaa == '123' then puts aaa end
NameError: undefined local variable or method `aaa' for main:Object
この場合、かっこが必要です。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