我的Lua代码如下:
a, b = 1, 10
if a<b then
print(a)
local a
print(a)
end
print(a, b)
只是一个小问题:
首先,我创建了一个全局变量a = 1;
然后在然后块中我使用全局变量a 来打印它;
然后我声明了未初始化的局部变量a (因此值为nil )
然后我的问题是:如何在然后阻止中创建局部变量之后才能访问全局变量,是有可能?如果是这样,请给我一个答案:)
答案 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