我在lua中使用这些表格的效率如何?

所以,我一直在编写一些 Lua 脚本,当使用表格时,我想要创建类似于 "节点" 或 "类" 的东西。

local playerInfo = {}
if player then
    local newPlayer = {NAME = name, HP = 10, DMG = 4}
    table.insert(playerInfo, newPlayer)
end

for k, v in pairs(playerInfo) do
    print(v.NAME)
end

这只是我正在做的示例,但像这样访问信息是否可以?还是有更有效的方法?

点赞
用户2546626
用户2546626

当谈到效率时,必须区分代码维护和性能。在 Lua 中,像大多数语言一样,这两个点分开考虑。

总是使用 pairs 而不是 ipairs,使用 table.insert 向表中添加元素,使用 .. 连接字符串等是很容易的。但是这不是一个快速运行程序的方式。

每个 Lua 程序员都应该阅读一篇文档:Roberto Ierusalimschy 的 Lua 性能技巧

关于你的代码:

  • 不要使用 table.insert,自己管理表的大小和插入。
  • 由于你的表只有数组条目,所以使用 ipairs
  • 避免无用的变量,尽可能地在现场建构(newPlayer)。
  • 使用 _ 作为未使用变量名的占位符(k)。

对于 LuaJIT而言,由于编译器部分的大量优化,还有一些其他规则,例如 (i)pairs 在这里减少了很多减速。

2015-08-08 06:21:27