p b #undefined local variable or method b for main:Object
a = nil
if a and (b=3)
do_something_with b
end
p b # nil
なぜ bnil
は if ブロックの実行後に値を取得するのに、予想される結果は になる undefined local variable or method b for main:Object
のですか?Ruby はnil
事前にすべての変数をメモリに初期化しますか?
次のコードと同じケース
if nil
bb = 10
end
p bb # nil
誰かがルビーが変数を初期化する方法と、この場合に何が起こっているのかについて光を当ててください、ありがとう