luaで印刷するのでタイプ機能でtableネストtableを実現
2421 ワード
luaで印刷するのでタイプ機能が実現
私はnumber、string、bool、nil、tableネストtable、userdataをテストして問題なく共有して何か問題があったらレンガのコードを撮ってください
使用例は次のコードです.
私はnumber、string、bool、nil、tableネストtable、userdataをテストして問題なく共有して何か問題があったらレンガのコードを撮ってください
cclog = function( ... )
local tv = "
"
local xn = 0
local function tvlinet(xn)
-- body
for i=1,xn do
tv = tv.."\t"
end
end
local function printTab(i,v)
-- body
if type(v) == "table" then
tvlinet(xn)
xn = xn + 1
tv = tv..""..i..":Table{
"
table.foreach(v,printTab)
tvlinet(xn)
tv = tv.."}
"
xn = xn - 1
elseif type(v) == nil then
tvlinet(xn)
tv = tv..i..":nil
"
else
tvlinet(xn)
tv = tv..i..":"..tostring(v).."
"
end
end
local function dumpParam(tab)
for i=1, #tab do
if tab[i] == nil then
tv = tv.."nil\t"
elseif type(tab[i]) == "table" then
xn = xn + 1
tv = tv.."
table{
"
table.foreach(tab[i],printTab)
tv = tv.."\t}
"
else
tv = tv..tostring(tab[i]).."\t"
end
end
end
local x = ...
if type(x) == "table" then
table.foreach(x,printTab)
else
dumpParam({...})
-- table.foreach({...},printTab)
end
print(tv)
end
使用例は次のコードです.
local ttt = {23,aa=23,23,
{bbb=23,"dsd",false,nil,
{32,ccc="23dd",
{23,"sdfsdf",
{234,addd="23233jjjjsdOK"}
}
}
},
{dd = "sd",23},
true
}
cclog(23,"sdf",ttt,"sdssssf",323223,false)
出力ログは次のとおりです.Cocos2d: [LUA-print]
23 sdf
table{
1:23
2:23
3:Table{
1:dsd
2:false
4:Table{
1:32
2:Table{
1:23
2:sdfsdf
3:Table{
1:234
addd:23233jjjjsdOK
}
}
ccc:23dd
}
bbb:23
}
4:Table{
1:23
dd:sd
}
5:true
aa:23
}
sdssssf 323223 false