我在Lua上创建了一个显示表内容的程序,它还显示了该表中的表的内容
for i in pairs(v) do
if type(v[i])=="table" then
for j in pairs(v[i]) do
if type(v[i][j])=="table" then
print("...")
else
print(i,j,v[i][j])
end
end
else
print(i,v[i])
end
end
我的问题是,是否有可能使上面的版本函数与{{{1},1},1}
表中的未定义数量的表一起工作,显示类似的内容?
1 1 1 1
1 2 1
2 1
答案 0 :(得分:1)
你需要一个递归函数。请参阅下面转载的Lua online demo中的 globals 示例。使用您的表格而不是dump
致电_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,"")