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