Luaの変数のスコープについて

Luaでは、変数のスコープ(有効範囲)によって、グローバル変数とローカル変数の2種類に分けられます。


グローバル変数

関数の外で定義された変数、または関数内でlocalキーワードを使わずに定義された変数で、プログラムのどこからでもアクセスできます。

※グローバル変数はプログラムの規模が大きくなるに従って意図しない動作になることが多い為、極力使用しないようにしましょう。


ローカル変数

localキーワードを使って定義された変数で、変数が定義されたブロック内(関数内、制御構文内など)でのみ有効です。


グローバル変数の例

-- グローバル変数の定義
global_variable = 10

function myFunction()
	-- 関数内でグローバル変数にアクセス
	print(global_variable)
end

myFunction() -- 出力: 10

ローカル変数の例

function myFunction()
	-- ローカル変数の定義
	local local_variable = 20
	print(local_variable)
end

myFunction() -- 出力: 20

-- 関数外ではアクセスできない
print(local_variable) -- エラー
マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。