首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Lua Recursion问题意外结果

Lua Recursion问题意外结果
EN

Stack Overflow用户
提问于 2021-12-31 05:22:05
回答 1查看 45关注 0票数 0

我想弄清楚为什么这个函数忽略了最中间的表?我忽略了一些我认为很简单的东西。

这是密码

代码语言:javascript
运行
复制
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>

代码语言:javascript
运行
复制
first table
last table
nil
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-31 06:52:44

在您的示例中,您有一个递归结构,每个表都有一个name,可能还有一个名为tbl的子表。因此,我不清楚为什么会在这些条件下使用for循环。

代码语言:javascript
运行
复制
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)

将返回:

代码语言:javascript
运行
复制
# Name  first table
# Name  middle table
# Name  last table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70539252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档