*Luaリファレンス 要注意点 ~スコープ~ [#sf56524d]
**その場でスコープ作成 [#ubc6ab82]
-汎用的に新たなスコープを作りたい場合は、do~end が C++でいう { } の代わりとなる。
#sh(lua){{
local a2 = 5
do
local a2 = 2*2
...
end
print(a2) --> 5
}}
**スコープとreturn [#ldeea1c7]
-C,Perl,Pythonなどと異なり, LUAではreturnを「ブロックの最後]にしか記述出来ない。
#sh(lua){{
function abc(x)
return ----> エラー。ブロックの最後じゃないのにreturnしている。
print(x)
end
}}
-このため、デバッグ時等で、一時的にreturnしてしまいたい場合は、以下のようにブロック化する。
#sh(lua){{
function abc(x)
do return end ----> OK。
print(x)
end
}}