重複の可能性:
Rubyで `a = a`` nil`なのはなぜですか?
この振る舞いには理由があると確信しています。私はそれが何であるかを知りたいだけです。
y = x # NameError: undefined local variable or method 'x'
x = x # => nil
重複の可能性:
Rubyで `a = a`` nil`なのはなぜですか?
この振る舞いには理由があると確信しています。私はそれが何であるかを知りたいだけです。
y = x # NameError: undefined local variable or method 'x'
x = x # => nil
これは、Rubyで変数が初期化される方法が原因で、この言語にかなり固有です。基本的に、Rubyは、変数に値が割り当てられる可能性がある場合、変数を初期化(作成)します。この例を考えてみましょう。
if false
x = "hello"
end
x
ここでは間違いなく"hello"
文字列が割り当てられません。ただし、nil
静的プログラム分析からのように初期化されたままであるため、割り当てられている可能性があります。
あなたの例も似ています。に何かを割り当てるため、ステートメントが実行される前にx
で初期化されます。したがって、実行中は、実際にはです。nil
x
nil