小编无数_*_*shu的帖子

为什么Lua没有真正的全局变量?

Lua并没有真正的全局变量,它使用table来实现全局变量。所有全局变量都存储在_G表中。

这在lua官方网站上的《Programming in Lua》一书中的22.3节中提到:Lua甚至根本没有全局变量。Lua不遗余力地给程序员一种全局变量的错觉,而为了维持全局变量的错觉,Lua内部维护了一个表作为全局环境。

我不知道Lua为什么这样做,我试图找到答案,但我只发现了一些模糊的说法,例如:全局变量是在整个程序中可见的变量,但Lua被设计为一种可嵌入的语言由宿主程序调用,为了解决这个困境,Lua使用表模拟来实现全局变量。

这在《Programming in Lua》第22章(环境)中有表述。

我想知道:“这种困境”是什么意思?“真正的全局变量”和“作为一种可嵌入语言”有哪些棘手的问题?以至于Lua并没有设计真正的全局变量。

lua

-8
推荐指数
1
解决办法
240
查看次数

标签 统计

lua ×1