【Lua】Tips
豆知識をこの記事に随時追加する。
ローカル変数のスコープについて
グローバル変数とローカル変数へのアクセス速度は後者が速く、
スコープを抜けるとガベージコレクションが働きデータの保守性が上がる
ローカル変数を使用する場合は必ずスコープの範囲で定義しないと
定義したそのチャンクを通過するとガベージコレクションが働く
以下コードでは repeat-until 内で定義したローカル変数を使用して
ループ判定を行っている(ver5.1以上)
function func() do local x = 0 repeat x = x + 1 local y = 10 print(x) until x >= y end end
return について
デバック処理等で関数の処理を呼ばずに1行目でリターンさせたい場合は
return をスコープ内で呼ぶ必要がある
function func() return -- error do return end -- ok -- 以下、関数の処理 end