luaで印刷するのでタイプ機能でtableネストtableを実現


luaで印刷するのでタイプ機能が実現
私は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