我想弄清楚为什么这个函数忽略了最中间的表?我忽略了一些我认为很简单的东西。
这是密码
tbl = {
name = "first table";
tbl = {
name = "middle table";
tbl = {
name = "last table";
};
};
}
sayName = function(tbl)
print(tbl.name)
if tbl.tbl ~= nil then
for _,v in pairs(tbl.tbl) do
sayName(v)
end;
end;
end;
sayName(tbl)
Output>
first table
last table
nil
发布于 2021-12-31 06:52:44
在您的示例中,您有一个递归结构,每个表都有一个name
,可能还有一个名为tbl
的子表。因此,我不清楚为什么会在这些条件下使用for
循环。
tbl = {
name = "first table",
tbl = {
name = "middle table",
tbl = {
name = "last table"
}
}
}
function PrintTable (Table)
print("# Name", Table.name)
local SubTable = Table.tbl
if SubTable then
return PrintTable(SubTable)
end
end
PrintTable(tbl)
将返回:
# Name first table
# Name middle table
# Name last table
https://stackoverflow.com/questions/70539252
复制相似问题