访问 lua 中的全局变量

access to global variables in lua

我有下面的 Lua 代码:

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


只是一个小问题:

首先,我创建了一个全局变量 a = 1;

then in the then block I use the global variable a to print it;

然后我声明了一个未初始化的 局部变量 a 因此它得到值 nil

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

使用_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