打印lua中的table

分类:CentOS运维 阅读:36640 次

好像很多人都写过这样的代码,我是今天确实需求这样的功能才想到要写一个,一开始感觉应该不是很难,结果写了下发现原来没有那么容易,搜了下,看到了云风写的一个,不过他是树形打印出来,大家可以看这里http://blog.codingnow.com/2009/05/print_r.html我觉得不够优美,还是按照大家写 lua 的 table 的习惯来打印才比较优美,比如


local a = { tbNum = {1, 2, 3, 4}, tbItemInfo = { [1] = { 50, {2,1,2,3,5}, 0 }, }, ["aaaaaaa"] = {"fadsfasdf", {1}}, }


这样的table,如果打印出来应该是这样的效果:


代码在这里:


打印 lua 的 table


学习云风大侠的作风,讲一下难点,一个是注意缩进的 upvalue 的运用,另一个是要记得处理 table 最后一个大括号以及逗号的打印。


这样打印出来的 table 完全符合 lua 的语法规范,可以直接复制进去供 lua 调用,同时略加修改,把 print 的地方用字符串拼接起来其实就是把一个 lua table序列化的过程,我也是这么用的,但愿对大家有帮助。


目前还不支持 key 为 table,因为是自己还没想好如果 key 是 table 的时候怎么打印出来比较优美。找到了方法就加上。但愿不要跟以前一样,一放下就忘了。