目次
変数にlocalを使用しない場合
function test()
a = 10 -- グローバル変数
print(a)
end
test() -- 10
print(a) -- 10(関数の外からも参照可能)
2行目は、グローバル変数になります。
6行目は、関数が実行され10が表示されます。
7行目も、関数内の変数aが参照できるので10が表示されます。
変数にlocalを使用する場合
function test()
local a = 10 -- ローカル変数
print(a)
end
test() -- 10
print(a) -- nil(関数の外からは参照不可)
2行目は、グローバル変数です。
6行目は、関数が実行され10が表示されます。
7行目も、関数内の変数aが参照できないのでnilが表示されます。
ループ文でlocalを使用する場合
ループ文でlocalを使用する場合もローカル変数になります。
for i = 1, 3 do
local a = i * 2 -- ローカル変数
print(a) -- 2 4 6
end
print(a) -- nil(ループ外からは参照できない)
まとめ
関数や一時的な変数では、すべてlocalにします。
関連の記事