一、基本打印table
--定义一个table local myTable = {key1 = "value1", key2 = "value2", key3 = "value3"} --打印table print(myTable) --输出:table: 0x7f99f0404670
默认情况下,通过print打印出来的table仅显示它在内存中的地址。需要通过其他方式将table内容打印出来。
二、使用pairs函数打印table
local myTable = {key1 = "value1", key2 = "value2", key3 = "value3"} for key, value in pairs(myTable) do print(key, value) end --输出: --key1 value1 --key2 value2 --key3 value3
使用pairs函数可以遍历table中的所有元素,输出每个元素对应的key和value。
三、使用ipairs函数打印数组型table
local myTable = {"value1", "value2", "value3"} for index, value in ipairs(myTable) do print(index, value) end --输出: --1 value1 --2 value2 --3 value3
使用ipairs函数逐一打印一个数组型table中的元素。注意:ipairs只输出连续下标的元素。
四、使用table.concat函数打印table
local myTable = {"value1", "value2", "value3"} local str = table.concat(myTable, ", ") print(str) --输出:"value1, value2, value3"
如果需要将table中的元素拼接成一个字符串,可以使用table.concat函数。
五、美化table打印结果
local myTable = { key1 = "value1", key2 = "value2", key3 = { subkey1 = "subvalue1", subkey2 = "subvalue2" } } function printTable(table, level) level = level or 1 local indent = "" for i = 1, level do indent = indent.." " end if level > 1 then print(indent.."{") end for k, v in pairs(table) do if type(v) == "table" then print(indent..k.." = {") printTable(v, level + 1) print(indent.."},") else local content = string.format("%s%s = %s,", indent, tostring(k), tostring(v)) print(content) end end if level > 1 then print(indent.."}") end end printTable(myTable) --输出: --{ -- key1 = value1, -- key2 = value2, -- key3 = { -- subkey1 = subvalue1, -- subkey2 = subvalue2, -- }, --}
美化table打印结果可以使输出更易读。可以自定义一个函数,递归调用打印table中的所有元素,并加入缩进。
总结
在Lua中,可以通过多种方式打印table。通常使用pairs函数遍历table中的元素,使用ipairs函数遍历数组型table中的元素。如果需要将table中的元素拼接成一个字符串,可以使用table.concat函数。如果需要美化table打印结果,可以自定义一个递归函数。
原创文章,作者:VGNWU,如若转载,请注明出处:https://www.506064.com/n/333388.html