lua - 如何在表格内打印表格的内容? [路亚]

标签 lua lua-table

我想要做的只是打印表内的表内容。例如:

local stats = {
  table1 = {
    tTable1 = 
    {
      data = 1
    },
    tTable2 = 
    {
      data2 = 2
    },
    tTable3 =
    {
      data3 = 3
    },
  }
}

我并不真正关心 table1 或所有 tTable,而是关心数据变量中的信息。我怎样才能打印它们?

这是我的真实代码片段:

local stats = {
  [1] = { 
    [1] = { 
      [1] = 1,
      [2] = -1,
      [3] = -1,
      ["n"] = 3,
    },
    [2] = { 
      [1] = nuclearcraft:cooler,
      [2] = 10,
      ["n"] = 2,
    },
    ["n"] = 2,
  },
  [2] = { 
    [1] = {
      [1] = 2,
      [2] = -1,
      [3] = -1,
      ["n"] = 3,
    },
    [2] = { 
      [1] = nuclearcraft:cell_block,
      [2] = 0,
      ["n"] = 2,
    },
    ["n"] = 2,
  },
  [3] = {
    [1] = {
      [1] = 3,
      [2] = -1,
      [3] = -1,
      ["n"] = 3,
    },
    [2] = { 
      [1] = nuclearcraft:cooler,
      [2] = 10,
      ["n"] = 2,
    },
    ["n"] = 2,
  },
}

这段代码实际上持续的时间比这要长一些。在实际代码中,除了标有“nuclearcraft”的区域及其下面的数字之外,我不关心任何数据。

最佳答案

递归表遍历适合这种情况:

local function TablePrint(t)
     for k,v in pairs(t)  do
         if type(v)=="table" then
            print(k)
            TablePrint(v)
         else 
            print('\t',k,v)
         end
     end      
end
TablePrint(stats)

结果:

table1
tTable3
        data3   3
tTable2
        data2   2
tTable1
        data    1

请记住,表中非索引值的顺序未定义

关于lua - 如何在表格内打印表格的内容? [路亚],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515669/

相关文章:

lua - 在 Lua 中重新定义变量的类型

recursion - Lua第四版编程中的八皇后之谜

function - 获取Lua脚本中的所有函数

linux - 如何在 Lua 和 cups 中使用打印机

Lua 错误 - 需要删除的错误参数 #1

lua - 如何通过键删除lua表条目?

javascript - 简单的 Node.js 故障排除 - 从 app.get() 接收 404

math - Lua - 根据灯泡的亮度级别计算灯泡使用的瓦数?

lua - 元表,尝试调用方法 'rename'(零值)

Lua - 尝试索引本地 'lvlObj'(用户数据值)