Lua 中表的人类可读字符串表示形式

发布于 2025-01-03 21:31:12 字数 137 浏览 0 评论 0原文

我是 Lua 新手,想要打印表的内容以进行调试。我可以通过自己迭代表格来做到这一点。然而,由于这对我来说是一个非常常见的问题,所以我希望必须有一种开箱即用的方法来做到这一点,或者必须有人编写了一个很好的库来做到这一点。在 Lua 中执行此操作的标准方法是什么?

I am new to Lua and want to print the contents of a table for debugging purposes. I can do that by iterating over the table myself. However, since this strikes me as a very common problem, I expect there must be an out of the box way of doing that or someone must have written a nice library that does that. WHat's the standard way of doing this in Lua?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2025-01-10 21:31:12

无论好坏,都没有标准。 Lua 以其排除和包含的内容而闻名。它不会对正确的字符串表示做出假设,因为没有一种真正的方法来处理格式、嵌套表、函数表示或表循环等内容。话虽这么说,从“自带电池”的 Lua 库开始也没什么坏处。也许可以考虑Penlight。它的 pl.pretty.write 可以解决问题。

For better or worse, there's no standard. Lua is known for what it excludes as much as for what it includes. It doesn't make assumptions about proper string representations because there's no one true way to handle things like formats, nested tables, function representation, or table cycles. That being said, it doesn't hurt to start with a "batteries-included" Lua library. Maybe consider Penlight. Its pl.pretty.write does the trick.

旧人 2025-01-10 21:31:12

这是表序列化的一般问题的一个实例。

查看lua-users 的表序列化页面了解一些重要的实现。

我通常会快速定义一个函数,例如

function lt(t) for k,v in pairs(t) do print(k,v) end end

This is an instance of the general problem of table serialization.

Take a look at the Table Serialization page at lua-users for some serious implementations.

My throw at it is usually quickly defining a function like

function lt(t) for k,v in pairs(t) do print(k,v) end end
靑春怀旧 2025-01-10 21:31:12

See table.print in https://github.com/rimar/lua-reactor-light/blob/master/util.lua it was probably borrowed from lualogging library

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文