Lua のスコープをテストしていて、予期しないことに気付きました。次のコードは、localMainVariable を出力しません。
function functionScope()
print( "\nIn function")
print( "globalMainVariable: " .. globalMainVariable )
if (localMainVariable ~= nil) then print( "localMainVariable: " .. localMainVariable ) end
end
globalMainVariable = "Visible"
local localMainVariable = "Visible"
functionScope()
ただし、次のコードは localMainVariable を出力します。
globalMainVariable = "Visible"
local localMainVariable = "Visible"
function functionScope()
print( "\nIn function")
print( "globalMainVariable: " .. globalMainVariable )
if (localMainVariable ~= nil) then print( "localMainVariable: " .. localMainVariable ) end
end
functionScope()
localMainVariable が宣言された場所と関係があることは知っていますが、ローカルにすると変数のスコープが制限されると思いました。実際のルールは?
ありがとう