万能打印函数,可同时打印多表
--[[递归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二值化函数源码
转载请注明原文地址: https://mac.8miu.com/read-26111.html