Lua 如何打印表格';表中的内容是什么?[卢阿]
我想做的只是在一个表中打印一个表的内容。例如:Lua 如何打印表格';表中的内容是什么?[卢阿],lua,lua-table,Lua,Lua Table,我想做的只是在一个表中打印一个表的内容。例如: local stats = { table1 = { tTable1 = { data = 1 }, tTable2 = { data2 = 2 }, tTable3 = { data3 = 3 }, } } 我并不真正关心表1或所有的TTable,而是关心数据变量中的信息。我如何打印它们 这是我真正的代码片段: local s
local stats = {
table1 = {
tTable1 =
{
data = 1
},
tTable2 =
{
data2 = 2
},
tTable3 =
{
data3 = 3
},
}
}
我并不真正关心表1或所有的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
请记住,表中非索引值的顺序没有定义它将完全取决于实际的表。如果示例不是真实的表,您可以发布真实表的示例吗?使用stats.table1.tTable3.data3为每个值编制索引是很困难和细致的,但是如果它们都只是“数据”,您可以这样使用:
对于键,成对的值(stats.table1)确实打印(value.data)end
,但是如果可能,您可以在表声明中省略键(tTable1={1}
),然后打印(值[1]). 试试看是的,以我的例子来说,我使用了data1、data2和data3,但我的实际表中确实有一些类似于“data”的东西。至于真实表格的一个例子,我现在不能做,因为我在打电话。当我回到我的电脑,我一定会尝试这个!我添加了一段代码。好的,如果您只想在每个较大的表中获取第二个表的第二个值,您可以对k使用,v成对(stats)
并打印(v[2][2])。这里有一些应该告诉你我的意思。我实际上把“pairs”改成了“ipairs”,因为完整的表是一个索引值表。除此之外,它似乎起了作用。我不确定我是否能把一条评论作为答案,(我是新来的),但谢谢你!