lua 中全局变量的访问

我有下面这段 Lua 代码:

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

有一个小问题:

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

然后在 then 块中使用了 全局变量 a 并打印了它;

接着我声明了一个未初始化的 局部变量 a(因此它得到了值 nil)

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

点赞
用户6171585
用户6171585

使用 _ENV.a 在使用相同名称的本地变量之后来访问全局变量!

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

编辑,刚刚测试了一下:

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

它可以正常工作,给我所需的输出引用 _ENV.a

2016-05-20 08:49:50