Lua 递归实现万能输出ptable函数

mac2022-06-30  71

万能打印函数,可同时打印多表

--[[递归ptable函数]] function ptable(...) local function pta(t,L) local src,o="","" local L = L or 0 --[[记录递归次数]] local Tab = "\n"..string.rep("\t",L-1) --[[tab空格]] local i = 0 --[[记录for循环次数]] for k,v in pairs(t) do if i > 0 then o = "," end i = i + 1 local key,var="","" if type(k) == "string" then key = "[\'"..k.."\'] = " else key = "["..k.."] = " end --[[显示["key"],注释可隐藏]] if L == 0 then key = "" else key = src .. o .. Tab .. key end --[[初始值不显示Key]] if type(v) == "table" then src = key .. "{" ..pta(v,L+1).. Tab .."}" else if type(v) == "string" then var = "'"..v.."'" elseif type(v) == "number" then var = v elseif type(v) == "function" then var = "function" elseif type(v) == "boolean" then if v then var = "true" else var = "false" end end src = key .. var end if L == 0 then print(src) --[[输出]] end end return src end return pta({...}) --[[运行]] end t={{2,a=true,3},{{"nihao"},{{},{}},{3,{111},{222}}},3} ptable(t,{11111111111111111},{"你好"}) --[[支持多表同时打印,支持打印"boolean",支持打印二值化]]

稍微修改可打印二值化表

Lua二值化函数源码

最新回复(0)