Lua 如何制作此函数的函数版本
我在Lua上做了一个程序来显示一个表的内容,它也显示了这个表中的一个表的内容 成对i(v)do的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您需要一个递归函数。请参阅下面复制的中的全局示例。
如果类型(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,"")
是的,使用递归是可能的。