我正在测试 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 的位置有关,但我认为将其设为本地会限制变量的范围。实际的规则是什么?
谢谢