(1) _G
第一个例子:
a = 5
print(_G.a) --5
第二个例子:
_G.a = 4
print(a) --4
第三个例子:
a = 3
_G = nil
print(a) --3
第四个例子:
a = 2
_G.a=5
print(a) --5
查看lua官方文档:
_G: A global variable (not a function) that holds the global environment (see §2.2).
Lua itself does not use this variable; changing its value does not affect any environment, nor vice-versa.
我们再看lua2.2节:
As will be discussed in §3.2 and §3.3.3, any reference to a global name var
is syntactically translated to _ENV.var
.
Moreover, every chunk is compiled in the scope of an external local variable called _ENV
(see §3.3.2), so _ENV
itself is never a global name in a chunk.