Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 如何制作此函数的函数版本_Lua - Fatal编程技术网

Lua 如何制作此函数的函数版本

Lua 如何制作此函数的函数版本,lua,Lua,我在Lua上做了一个程序来显示一个表的内容,它也显示了这个表中的一个表的内容 成对i(v)do的 如果类型(v[i])==“表”,则 对于成对的j(v[i])do 如果类型(v[i][j])==“表”,则 打印(“…”) 其他的 打印(i,j,v[i][j]) 结束 结束 其他的 打印(i,v[i]) 结束 结束 我的问题是,是否可以使上面的一个版本函数与表中未定义数量的表一起工作,如{{{1},1},1}显示类似的内容 1 1 2 1 2 1您需要一个递归函数。请参阅下面复制的中的全局示例。

我在Lua上做了一个程序来显示一个表的内容,它也显示了这个表中的一个表的内容

成对i(v)do的

如果类型(v[i])==“表”,则
对于成对的j(v[i])do
如果类型(v[i][j])==“表”,则
打印(“…”)
其他的
打印(i,j,v[i][j])
结束
结束
其他的
打印(i,v[i])
结束
结束
我的问题是,是否可以使上面的一个版本函数与表中未定义数量的表一起工作,如
{{{1},1},1}
显示类似的内容

1

1 2 1


2 1

您需要一个递归函数。请参阅下面复制的中的全局示例。使用您的表调用
dump
,而不是
\u G

-- globals.lua
-- show all global variables

local seen={}

function dump(t,i)
    seen[t]=true
    local s={}
    local n=0
    for k in pairs(t) do
        n=n+1 s[n]=k
    end
    table.sort(s)
    for k,v in ipairs(s) do
        print(i,v)
        v=t[v]
        if type(v)=="table" and not seen[v] then
            dump(v,i.."\t")
        end
    end
end

dump(_G,"")

是的,使用递归是可能的。