lua递归输出表table的内容
来源:互联网 发布:科比0506赛季详细数据 编辑:程序博客网 时间:2024/06/06 17:52
local tconcat = table.concatlocal tinsert = table.insertlocal srep = string.rep
function print_r(root)local cache = { [root] = "." }local function _dump(t,space,name)local temp = {}for k,v in pairs(t) dolocal key = tostring(k)if cache[v] thentinsert(temp,"+" .. key .. " {" .. cache[v].."}")elseif type(v) == "table" thenlocal new_key = name .. "." .. keycache[v] = new_keytinsert(temp,"+" .. key .. _dump(v,space .. (next(t,k) and "|" or " " ).. srep(" ",#key),new_key))elsetinsert(temp,"+" .. key .. " [" .. tostring(v).."]")endendreturn tconcat(temp,"\n"..space)endprint(_dump(root, "",""))end
简单一点,可以按照如下写
--打印tablefunction print_t(root) local cache = { [root] = "." } local function _dump(t,space,name) local temp = {} for k,v in pairs(t) do local key = tostring(k) if cache[v] then table.insert(temp,"+" .. key .. " {" .. cache[v].."}") elseif type(v) == "table" then local new_key = name .. "." .. key cache[v] = new_key table.insert(temp,"+" .. key .. _dump(v,space .. (next(t,k) and "|" or " " ).. string.rep(" ",#key),new_key)) else table.insert(temp,"+" .. key .. " [" .. tostring(v).."]") end end return table.concat(temp,"\n"..space) end print(_dump(root, "",""))end
0 0
- lua递归输出表table的内容
- lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出
- lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出
- lua 如何输出树状结构的table?
- Lua 语言输出Table详细信息的实现
- Lua中实现table的打印输出(print table)
- Lua打印Table内容(日期)
- Lua打印Table内容(日期)
- 5、C++读取Lua中Table的内容
- 6、C++修改Lua中Table的内容
- lua与c++的相互调用、C/C++修改Lua中Table的内容
- Jquery 获得table的行数,并输出单元格的内容
- 【步兵 lua】尾递归 打印table
- Lua Table表的深度拷贝
- lua的TABLE性质
- lua的table排序
- lua 的 table 处理
- lua的table排序
- 脑外伤癫痫发作时该如何急救?
- STL中的traits编程技巧
- c++Primer学习笔记之七:第二章课后习题
- 五行CSS实现逼真图片阴影效果
- 编程技巧系列(2)Java 集合(List,Set,Map)遍历时有条件删除特定元素
- lua递归输出表table的内容
- android多线程下载以及断点续传
- Art of Multiprocessor Programming 答案 ch16
- 触发器和锁存器的概念及FPGA中的使用
- 求数组最大k个数的问题(堆的应用)
- redis设置密码
- JAVA基础 (三)反射 深入解析反射机制
- css_div实现边框效果
- 图论算法(2)--- 如何求DAG中每一个点的所有子孙数量