本文主要是介绍Lua程序设计(五十三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用 _ENV
由于 _ENV 的使用给我们带来了许多灵活性的手段。由于 _ ENV 只是一个普通的变量,因此可以对其进行赋值或像访问其他变量一样访问它。
_ENV = nil
这句赋值语句将使得后续代码不能直接访问全局变量。这可以用来控制代码使用哪种变量
local print, sin = print, math.sin
_ENV = nilprint(13) --> 13
print(sin(13)) -->0.420167
print(math.cos(13)) --error!
因为math.cos需要访问 ENV ,但是 ENV 已经被置空,所以会出现错误。任何对自由名称(“全局变量”)的赋值会引发类似的错误。
我们可以显式地使用_ ENV 来绕过局部声明:
a = 13
local a = 12
print(a) --> 12
print(_ENV.a) -->13
用 _G也可以:
a = 13
local a = 12
print(a) --> 12
print(_G.a) -->13
通常, _ G 和 _ ENV 指向的是同一个表。但是, 尽管如此,它们是很不一样的实体。 _ ENV 是一个局部变量,
这篇关于Lua程序设计(五十三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!