不像开发as3时用fb有强大的断点调试功能,一般lua开发不用什么高级的ide,貌似也没有适合的,就直接用sublime、exvim等文本编辑器,直接编译运行看结果。所以不能很方便的知道变量值,特别是开发手游时,前后端调协议,如果无法查看后端发过来的数据就更蛋疼了。对于其他的数据还可以直接用print()函数打印出来,但对于table数据print()就无能为力了,所以可以写个自己写个方法,专门用于递归遍历并打印出table的内容。当需要看某个table的内容时,直接调用PrintTable(table名)就可以了。

实现代码

---
-- @function: 打印table的内容,递归
-- @param: tbl 要打印的table
-- @param: level 递归的层数,默认不用传值进来
-- @param: filteDefault 是否过滤打印构造函数,默认为是
-- @return: return
function PrintTable( tbl , level, filteDefault)local msg = ""filteDefault = filteDefault or true --默认过滤关键字(DeleteMe, _class_type)level = level or 1local indent_str = ""for i = 1, level doindent_str = indent_str.."  "endprint(indent_str .. "{")for k,v in pairs(tbl) doif filteDefault thenif k ~= "_class_type" and k ~= "DeleteMe" thenlocal item_str = string.format("%s%s = %s", indent_str .. " ",tostring(k), tostring(v))print(item_str)if type(v) == "table" thenPrintTable(v, level + 1)endendelselocal item_str = string.format("%s%s = %s", indent_str .. " ",tostring(k), tostring(v))print(item_str)if type(v) == "table" thenPrintTable(v, level + 1)endendendprint(indent_str .. "}")
endlocal x = {a = 20,20,60,{a = {a = 1,2323},2323}}
PrintTable(x)

用sublime直接ctrl+B编译运行,就可以看到控制台里正确的输出了table的内容。

  {1 = 202 = 603 = table: 006DB668{1 = 2323a = table: 006DB7D0{1 = 2323a = 1}}a = 20}

转载于:https://www.cnblogs.com/leoin2012/p/3915295.html

如何打印出lua里table的内容相关推荐

  1. 【游戏开发解答】Unity使用lua将table转为树结构,以多级折叠内容列表的UI形式展现(树结构 | UGUI | 折叠展开 | lua)

    文章目录 一.前言 二.Unity lua环境 三.树节点 1.创建脚本:TreeNode.lua 2.封装节点 四.树逻辑 1.创建脚本:TreeLogic.lua 2.构造测试数据 3.构造树 4 ...

  2. html粘贴excel内容,如何用JS解析剪切板里的excel内容

    前言 这次记录的是昨晚一个想法:把excel内容复制到剪切板并转成自己想要的json格式,核心是要把excel内容转json,这部分主要看excel的格式和json如何业务的映射,不展开.倒是通过实践 ...

  3. Lua 的table遍历 【转】

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rangercyh.blog.51cto.com/1444712/1032925 ...

  4. html5读取剪切板 内容,实践笔记:js解析剪切板里的excel内容

    这次记录的是昨晚一个想法:把excel内容复制到剪切板并转成自己想要的json格式,核心是要把excel内容转json,这部分主要看excel的格式和json如何业务的映射,不展开.倒是通过实践,收获 ...

  5. lua中table.和table[]的区别

    lua中table.和table[]的区别 lua中的table可以定义为如下格式 local tab = { ["one"] = 1, ["two"] = 2 ...

  6. java中table是什么标签_[Java教程]javascript格式化table标签内容

    [Java教程]javascript格式化table标签内容 0 2015-07-12 20:00:08 项目中遇到这样的需求,一大段文章正文的html代码在手机中显示不全,原因是由于其它有table ...

  7. python txt提取特定数据_Python提取列表中的内容 用“python”怎么提取文件里的指定内容?...

    用"python"怎么提取文件里的指定内容? python读取文件内容的方法: 一.最方便的方法是一次性读取文件中的所有内容并放置到一个大字符串中: all_the_text = ...

  8. element table 组件内容换行方案

    element table 组件内容换行方案 white-space的值: normal 默认.空白会被浏览器忽略. pre 空白会被浏览器保留.其行为方式类似 HTML 中的<pre> ...

  9. java -uf_Java如何快速修改Jar包里的文件内容

    需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...

最新文章

  1. python下载后如何使用-如何使用Python通过HTTP下载文件
  2. ios请求php接口失败,laravel,php_iOS调用Laravel接口返回错误信息,laravel,php,ios - phpStudy...
  3. 【原创】MySQL5.7 虚拟列实现表达式索引
  4. 语言余一个负数_C语言学习日记(8)——整数溢出
  5. [html] HTML5的文件离线储存怎么使用,工作原理是什么?
  6. 【Servlet】解决org.apache.tomcat.util.modeler.BaseModelMBean.invoke Exception invoking method……
  7. UI完美素材|(Watch展示篇)Mockups动态图提案模板
  8. python批量读取图片并批量保存_Python实现批量读取图片并存入mongodb数据库的方法示例...
  9. js中in关键字的用法
  10. dicom worklist下载病例程序/dicom worklist scu (c#版本)
  11. 安装sql server出现配置系统未能初始化
  12. 计算机软件工程专业选科要求,选考科目科普:软件工程专业要求哪些选考科目?...
  13. matlab补帧,超清还不够,插帧算法让视频顺滑如丝丨NeurIPS 2019
  14. 13款入侵检测系统介绍(HIDS)
  15. (旧)springboot 快速实现登录、注册功能(附Demo源码)
  16. 筑基八层 —— 问题思考分析并解决
  17. 计算机软件开发行业前景
  18. 【C++】斐波那契凤尾
  19. 香槟分校计算机科学排名,伊利诺伊大学香槟分校计算机科学与信息系统世界排名2018年最新排名第28(QS世界排名)...
  20. 中国博客网告别免费午餐 用户数据清除延至7月1日

热门文章

  1. idea插件Iedis 2安装与使用
  2. C# DataGridView 如何选中整行
  3. 打开Android Studio报错“Error running ***: Please select Android SDK”
  4. c 命令行简易计算器
  5. Kubernetes知识体系-从入门到精通
  6. cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色
  7. MongoDB(两)mongoDB基本介绍
  8. 浅谈移动Web开发(上):深入概念
  9. 死锁(Deadlock)
  10. 【转】动态模型及其求解介绍–番外篇