4
我正在测试Lua的范围并且发现了一些意想不到的情况。以下代码不会打印localMainVariable。Lua中的范围规则
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被宣布在那里,但我想使它本地会限制变量的作用域。实际的规则是什么?
感谢
刚提的是,在第二个例子中,'localMainVariable'被称为** **的upvalue为'functionScope'功能。 – Vercas 2013-03-23 18:03:16