访问Lua 3.2(.1)中的全局表?

时间:2018-03-14 22:46:42

标签: lua version global lua-table

我目前使用的是2000版本的Lua,因为我正在编写一个程序,我正在编写一个脚本。我使用的版本是3.2.1。

我想遍历全球环境的所有元素,但我还没有找到方法。如果有人可以告诉我,在那个版本的Lua中是否甚至是可能的话,我会很高兴,如果是这样的话怎么办。 _G是该版本中的零值,我无法从全局获取该表的全局(名称)。

我没有找到关于https://www.lua.org/manual/3.2/manual.html的全局环境迭代的任何内容,因为我对它进行了重读或者不存在。

感谢任何可以帮助我的回复!

1 个答案:

答案 0 :(得分:3)

使用nextvar遍历所有全局变量。在manual中搜索它。另请参阅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遍历的条目时,它在4.0中被删除。