加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

Lua中打印所以类型功能达成table嵌套table

发布时间:2021-11-20 15:25:06 所属栏目:教程 来源:互联网
导读:代码如下 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

代码如下
 
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..":niln"
        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.."nilt"
            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
 
使用示例如下代码
 
    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 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读