在 Lua 3.2(.1) 中访问全局 table?

Accessing global table in Lua 3.2(.1)?

我目前使用的是 Lua 的 2000 之前版本,因为我正在编写的程序是当时制作的脚本。我使用的版本是 3.2.1。

我想遍历全球环境的所有元素,但我还没有找到方法。如果有人能告诉我在 Lua 的那个版本中这是否可行,以及如何实现,我会很高兴。 _G 在该版本中是一个零值,我无法从全局获取 table 的全局(名称)。

我没有在 https://www.lua.org/manual/3.2/manual.html 上找到任何关于全局环境迭代的信息,因为我过度阅读了它或者它不存在。

感谢任何对我有帮助的回复!

使用nextvar遍历所有全局变量。在 manual. See also this.

中搜索

下面是一些打印所有全局变量的示例代码:

function allvars()
    local k,v=nil
    while 1 do
        k,v=nextvar(k)
        if k==nil then return end
        print(k,v)
    end
end

allvars()

nextvar 存在于 Lua 1.1 到 3.2。当全局变量成为可以用 next.

遍历的普通 table 中的条目时,它在 4.0 中被删除