lua中列印所以型別功能實現table巢狀table
阿新 • • 發佈:2019-02-10
lua中列印所以型別功能實現
本人測試 number、string、bool、nil、table巢狀table、userdata沒問題 共享一下有什麼問題請拍磚 程式碼如下
[javascript] view plaincopy- cclog = function( ... )
- local tv = "\n"
- 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{\n"
- table.foreach(v,printTab)
- tvlinet(xn)
- tv = tv.."}\n"
-
xn = xn - 1
- elseif type(v) == nil then
- tvlinet(xn)
- tv = tv..i..":nil\n"
- else
- tvlinet(xn)
- tv = tv..i..":"..tostring(v).."\n"
- 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.."\ntable{\n"
- table.foreach(tab[i],printTab)
- tv = tv.."\t}\n"
- 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
使用示例如下程式碼
[javascript] view plaincopy- 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