Lua打印table树形结构
--这是quick中的工具,作用就是打印Lua中强大的table的结构, 当table的嵌套层级比较多的时候,这个工具非常方便,开发中必备的工具。
--具体使用方法:local debug = require("debug")
-- debug.dump(dataTable, "dataTable", 3) 接下来就可以在控制台看到输出的结果了,非常漂亮的树形结构
1 module(..., package.seeall) local g_Debug_Flag = true function log(msg)
if g_Debug_Flag == false then
return
end
cclog(msg)
end ---
--@function dump()
--@param value table 需要打印的
--@param description string 描述
--@param nesting int table嵌套层级
--@end function dump(value, description, nesting)
if g_Debug_Flag == false then
return
end --默认打印层级3
if type(nesting) ~= "number" then
nesting =
end local lookupTable = {}
local result = {} local function _v(v)
if type(v) == "string" then
v = "\"" .. v .. "\""
end
return tostring(v)
end local function _dump(value, description, indent, nest, keylen)
description = description or "<var>"
spc = ""
if type(keylen) == "number" then
spc = string.rep(" ",keylen - string.len(_v(description)))
end if type(value) ~= "table" then
result[#result + ] = string.format("%s%s%s = %s", indent, _v(description), spc, _v(value))
elseif lookupTable[value] then
result[#result + ] = string.format("%s%s%s = *REF*", indent, description, spc)
else
lookupTable[value] = true
if nest > nesting then
result[#result + ] = string.format("%s%s = *MAX NESTING*", indent, description)
else
result[#result + ] = string.format("%s%s = {" , indent, _v(description))
local indent2 = indent .. " "
local keys = {}
local keylen =
local values = {}
for k, v in pairs(value) do
keys[#keys + ] = k
local vk = _v(k)
local vk1 = string.len(vk)
if vk1 > keylen then
keylen = vk1
end
values[k] = v
end
table.sort(keys,function(a, b)
if type(a) == "number" and type(b) == "number" then
return a < b
else
return tostring(a) < tostring(b)
end
end) for i, k in pairs(keys) do
_dump(values[k], k, indent2,nest + ,keylen)
end
result[#result + ] = string.format("%s}", indent)
end
end
end
_dump(value,description, "- ", ) for i, line in pairs(result) do
print(line)
end end
Lua打印table树形结构的更多相关文章
- Lua打印Table的数据结构工具类
--这是quick中的工具,作用就是打印Lua中强大的table的结构, 当table的嵌套层级比较多的时候,这个工具非常方便,开发中必备的工具. --具体使用方法:local debug = req ...
- lua 打印 table 拷贝table
-- 打印table function print_lua_table (lua_table, indent) if lua_table == nil or type(lua_table) ~= &q ...
- Lua 打印 table (支持双向引用的table)
网上搜了一下,挺多打印table的方案,基本思路都是一层一层递归遍历table.(我就是参考这种思路做的^_^) 但大部分都不支持双向引用的打印.我所指的双向引用,就是a引用b, b又直接或间接引用a ...
- 打印Lua的Table对象
小伙伴们再也不用为打印lua的Table对象而苦恼了, 本人曾也苦恼过,哈哈 不过今天刚完成了这个东西, 以前在网上搜过打印table的脚本,但是都感觉很不理想,于是,自己造轮子了~ 打印的效果,自己 ...
- salesforce 零基础学习(七十)使用jquery table实现树形结构模式
项目中UI需要用到树形结构显示内容,后来尽管不需要做了,不过还是自己做着玩玩,mark一下,免得以后项目中用到. 实现树形结构在此使用的是jquery的dynatree.js.关于dynatree的使 ...
- lua的table表处理 及注意事项
lua,一款很轻量级很nice很强大的脚本语言,做为lua中使用最为频繁的table表,在使用之时还是有颇多的好处与坑的: 下面是大牛 云风的一片关于lua table的blog,可使得对lua ta ...
- 如何打印出lua里table的内容
不像开发as3时用fb有强大的断点调试功能,一般lua开发不用什么高级的ide,貌似也没有适合的,就直接用sublime.exvim等文本编辑器,直接编译运行看结果.所以不能很方便的知道变量值,特别是 ...
- 树形结构部门的 sqlserver 排序
树形结构部门的 sqlserver 排序 因为要实现部门排序功能,而且要考虑部门的层级,直接用 sql 排序是不行的,所以写个 sql function 来支持. 首先部门表:company CREA ...
- [SQL Server]树形结构的创建
对于SQL Server来说,构建显示一个树形结构不是一件容易的事情,逻辑构造能力不是它的强项.不过也不是说它没有能力干这个事情,只要换一种思维方式就可以理解它的工作原理. 例如,现在有一张表的内容如 ...
随机推荐
- 原始套接字-自定义IP首部和TCP首部
/* ===================================================================================== * * Filenam ...
- (一)Git时间--初识版本控制工具
//配置一下你的身份 git config --global use.name "Douzi" git config --global use.email "jdouzi ...
- expect 交互 模拟ssh 登陆
模拟ssh登录 #!/bin/bash Ip='192.168.1.6' # 循环就行 RemoteUser='user' # 普通用户 RemotePasswd='userpasswd' # 普通用 ...
- 蓝桥杯 问题 1110: 2^k进制数 (排列组合+高精度巧妙处理)
题目链接 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2 ...
- python2.7中MySQLdb的安装与使用详解
Python2.7中MySQLdb的使用 import MySQLdb #1.建立连接 connect = MySQLdb.connect( '127.0.0.1', #数据库地址 'root', # ...
- 洛谷 P5206: bzoj 5475: LOJ 2983: [WC2019] 数树
一道技巧性非常强的计数题,历年WC出得最好(同时可能是比较简单)的题目之一. 题目传送门:洛谷P5206. 题意简述: 给定 \(n, y\). 一张图有 \(|V| = n\) 个点.对于两棵树 \ ...
- 纠正几个NANDFLASH很容易犯的错误【转】
转自:https://blog.csdn.net/pengrui18/article/details/32337297 今天在看别人如何根据物理地址计算NANDFLASH的列地址(column add ...
- jenkins执行构建任务报错之java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE
在执行创建工作空间时候,创建不成功,出现错误?? ......... java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE ......... ...
- (原创)关于viewpager嵌套listview居中显示的问题
今天折腾了半天自定义控件的问题,如下图所示,我们UI设计了一种可以左右滑动的列表,而列表中又包含了listview.而且要居中显示listview 我一看UI,心想简单,不就是根据datas的数目进行 ...
- SysV和BSD启动风格的比较
Slackware启动脚本与System V启动脚本的区别何在? Slackware 使用BSD风格的init脚本,而很多别的发行版使用System V风格的init脚本.SysV和BSD脚本都是能让 ...