local tablePrinted = {}
function printTableItem(k, v, level)
for i = 1, level do
io.write(" ")
end
io.write(tostring(k), " = ", tostring(v), "\n")
if type(v) == "table" then
if not tablePrinted[v] then
tablePrinted[v] = true
for k, v in pairs(v) do
printTableItem(k, v, level + 1)
end
end
end
end
function printTableItem(k, v, level)
for i = 1, level do
io.write(" ")
end
io.write(tostring(k), " = ", tostring(v), "\n")
if type(v) == "table" then
if not tablePrinted[v] then
tablePrinted[v] = true
for k, v in pairs(v) do
printTableItem(k, v, level + 1)
end
end
end
end
printTableItem("_G", _G, 0)
在输出中,没有local变量tablePrinted,而函数printTableItem是全局变量,在输出中可以找到。
本文介绍了一个Lua语言中用于递归打印复杂表格结构的实用函数。该函数能够清晰地展示表格内的键值对,并能深入处理嵌套的子表格,确保每个元素都被正确地输出。
1405

被折叠的 条评论
为什么被折叠?



