Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Lua中打印所以类型功能实现table嵌套table

lua中打印所以类型功能实现本人测试 number、string、bool、nil、table嵌套table、userdata没问题 共享一下有什么问题请拍砖推荐阅读:Lua 语言 15 分钟快速入门 http://www.linuxidc.com/Linux/2013-06/86582.htmLua程序设计(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htmLua程序设计(第二版)阅读笔记 http://www.linuxidc.com/Linux/2013-03/81834.htmNetBSD 将支持用 Lua 脚本开发内核组件 http://www.linuxidc.com/Linux/2013-02/79527.htmCentOS 编译安装 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htm代码如下cclog = function( ... )
    local tv = " "
    local xn = 0
    local function tvlinet(xn)
        -- body
        for i=1,xn do
            tv = tv.." "
        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 "
            elseif type(tab[i]) == "table" then
                xn = xn + 1
                tv = tv.." table{ "
                table.foreach(tab[i],printTab)
                tv = tv.." } "
            else
                tv = tv..tostring(tab[i]).." "
            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 Lua 的详细介绍:请点这里
Lua 的下载地址:请点这里本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-05/101390.htm