Ruby 初心者スレッド Part 30
レス数が900を超えています。1000を超えると表示できなくなるよ。
0921デフォルトの名無しさん
2009/09/13(日) 16:11:24FAQ にもあるんだが、ローカル変数は、構文解析で代入が見つかるかどうかだけが鍵
実際に(いつ)実行されるかどうかは関係がない
if false
foo = "OK"
end
foo
上記は NameError を起こさないが、以下は foo が NameError を起こす
for e in [1, 2 ,3]
if e == 2 then
foo
else
foo = "OK"
end
end
動作は同一なはずの unless で 代入記述の順番を変えると NameError は起こらない
for 構造はスコープを作らないことに注意
for e in [1, 2 ,3]
unless e == 2 then
foo = "OK"
else
foo
end
end
レス数が900を超えています。1000を超えると表示できなくなるよ。