加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua中打印所以类型功能实现table嵌套table

发布时间:2020-12-14 22:10:26 所属栏目:大数据 来源:网络整理
导读:lua中打印所以类型功能实现 本人测试 number、string、bool、nil、table嵌套table、userdata没问题 共享一下有什么问题请拍砖 代码如下? cclog = function( ... ) local tv = "n" local xn = 0 local function tvlinet(xn) -- body for i=1,xn do tv = tv..

lua中打印所以类型功能实现

本人测试 number、string、bool、nil、table嵌套table、userdata没问题 共享一下有什么问题请拍砖 代码如下?

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	

(编辑:李大同)

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

    推荐文章
      热点阅读