递归打印lua表
lua的print方法是不支持表的打印的,这样查看一个table的内容会变得非常麻烦,在写这篇博客之前我也从网上查找了大量资料,内容很多,但是都不能满足我的要求。要不输出格式不够美观要不就是用起来麻烦,比如要掉用一个自定义的方法才能打印,而且只能打印一个table。我的想法是让print方法支持表的打印,用法跟原生的没有差别,可以传递多个参数并且顺序打印。
自己琢磨了一会儿发现输出内容很简单,只要一个递归就可以,但是要输出美观就要多花时间测试了。下面贴出详细代码.
function dumpTable(t, tab)
local str = str or ""
if not t then
print("table is nil")
return str
end
tab = tab or " "
tab = tab .. " "
str = str .. "{\n"
if type(t) == "table" then
for k, v in pairs(t) do
if type(k) == "number" then
str = str .. string.sub(tab, 2, string.len(tab)) .. "[" .. k .. "]" .. " = "
else
str = str .. string.sub(tab, 2, string.len(tab)) .. "[\"" .. k .. "\"]" .. " = "
end
if type(v) == "string" then
str = str ..