【发布时间】:2012-05-18 14:48:10
【问题描述】:
我知道还有其他类似的主题,但找不到我的问题的直接答案。
假设你有这样一个函数:
function aFunction()
local aLuaTable = {}
if (something) then
aLuaTable = {}
end
end
对于if语句里面的aLuaTable变量,还是局部的吧?基本上我要问的是,如果我第一次将一个变量定义为本地变量,然后我一次又一次地使用它,它会在程序的剩余生命周期中保持本地状态,这究竟是如何工作的?。
另外,我阅读了 Lua 全局变量的这个定义:
任何不在定义块中的变量都被称为在全局范围内。 所有内部范围都可以访问全局范围内的任何内容。
不在定义的块中是什么意思?我的理解是,如果我在任何地方“声明”一个变量,它将始终是全局的,这是不正确的吗?。
对不起,如果问题太简单了,但是来自Java和objective-c,lua对我来说很奇怪。
【问题讨论】:
-
没有很多 XP 与 lua,但据我所知,该变量将在该函数的范围内 - 它将超出该函数的范围。在函数体(定义的块)之外声明的任何变量都被视为在全局范围内,并且可以从该 lua 脚本中的任何位置访问
标签: variables scope lua global-variables