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..":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

使用示比例如以下代码

    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中打印所以类型功能实现table嵌套table的更多相关文章

  1. lua中的string类型

    在lua中用union TString来表示字符串类型 lobject.h: 其中结构体tsv中 reserved字段表示字符串是不是保留关键字,hash是其哈希值,len是其长度.我们在TStrin ...

  2. 配合bootstrap实现的table 嵌套table

    不要忘了引入bootstrap.css库 html部分 <div class="container"> <div class="row"> ...

  3. table嵌套table,jquery获取tr个数

    一.所有tr的个数 $("#tableId tr").length 二.所有一级tr的个数 1.$("#tableId > tr").length 2.$ ...

  4. Lua中的weak表——weak table

    弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...

  5. Lua中的weak表——weak table(转)

    弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...

  6. Lua中的类型与值

    [基础介绍] Lua是一种动态类型的语言.在语言中没有类型定义的语法,每个值都带有其自身的类型信息.在Lua中有8中基本类型,分别是: nil(空)类型 boolean(布尔)类型 number(数字 ...

  7. Lua中使用table实现的其它5种数据结构

    Lua中使用table实现的其它5种数据结构 lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础,如:数组,记录,链表,队列等都可以用它来表示. 1.数组 在lua中,table ...

  8. lua中基类和“继承机制”

    基类:基类定义了所有对于派生类来说普通的属性和方法,派生类从基类继承所需的属性和方法,且在派生类中增加新的属性和方法. 继承:继承是C++语言的一种重要机制,它允许在已定义的类的基础上产生新类. lu ...

  9. Lua 中的string库(字符串函数库)总结

    (字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...

随机推荐

  1. python list comprehension twos for loop 嵌套for循环

    list comprehension 后面可以有多个for loops,每个for后面可以有if [(x, y, x * y)for x in(0,1,2,3)for y in(0,1,2,3)if ...

  2. CreateThread与_beginthread, _beginthreadex创建线程的基本概念和区别(1)

    这三个函数都可以创建新的线程,但都是如何创建的呢?当然MSDN文档最权威: Creates a thread to execute within the virtual address space o ...

  3. ceph之Placement Group

    预定义PG_NUM 新建一个存储池命令:ceph osd pool set {pool-name}  pg_num 选择一个pg_num的值是强制性的,这是因为该值不能被自动计算出来,以下是一些常用值 ...

  4. 计算闰年_winform

    新建窗体应用程序(如下),新建控件label1,label2,label3,textBOX1,button1,button2 label1的Text属性改为“计算闰年演示” label2的Text属性 ...

  5. Android中的TextView实现多行显示省略号

    今天遇到一个问题就是TextView显示内容的时候,多行显示的时候,显示省略号的问题,刚开始没有找到一个好的办法,只找到一个自定义TextView组件的方法,然而今天在贴吧中找到一个更好,更简便的方法 ...

  6. Python之路Day6

    Day6的主要内容是: configparser模块 shutil模块 subprocess模块 处理xml的模块 1.configparser模块 #! /usr/bin/env python # ...

  7. jQuery如何设置自增自减值

    一直不是很记得jquery中怎么设置自增值,比如当点击按钮时 div在当前宽度基础上增加宽度100px,可以这样写: $('button.test').click(function(){ $('div ...

  8. ASP.NET MVC 5 学习教程:修改视图和布局页

    原文 ASP.NET MVC 5 学习教程:修改视图和布局页 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...

  9. php抓取ajax页面返回图片。

    要抓取的页面:http://pic.hao123.com/ 当我们往下滚动的时候,图片是用ajax来动态获取的.这就需要我们仔细分析页面了. 可以看到,异步加载的ajax文件为: http://pic ...

  10. A shallow summary of oracle log miner

    Sometimes, we should recover one or more rows data which is deleted carelessly by users, but it is n ...