访问lua中的全局变量

时间:2016-05-20 08:42:49

标签: lua global-variables local-variables

我的Lua代码如下:

a, b = 1, 10
if a<b then
    print(a)
    local a
    print(a)
end
print(a, b)


只是一个小问题:
首先,我创建了一个全局变量a = 1;

然后在然后块中我使用全局变量a 来打印它;

然后我声明了未初始化的局部变量a 因此值为nil

然后我的问题是:如何在然后阻止中创建局部变量之后才能访问全局变量,是有可能?如果是这样,请给我一个答案:)

1 个答案:

答案 0 :(得分:5)

使用_ENV.a为本地变量使用相同名称后访问全局变量!

注意,Lua 5.1及以下版本使用_G

编辑,刚试过这个:

a, b = 1, 10
if a<b then
    local a = 12
    print(a) -- Will print 12
    print(_ENV.a) -- Will print 1
end
print(a, b) -- Will print 1 10

它工作正常,给了我所需的输出参考_ENV.a