将一个表与一个对象相比,哪个更有效率?

使用表是否更节省内存或者更重要的是更快速?为了参考,这里是我将要使用的一个表的例子。

[3, 4, 5, -1, 2, true, 32]

或者使用对象的形式:

{x1=3, y1=4, x2=5, y2=-1, GID=2, alive=true, LID=32}

另外,使用单一类型的表是否比使用多种类型(如数字和布尔值)更有效率?

点赞
用户734069
用户734069

Lua 只有表。您可能在谈论表的数组部分和键值对部分之间的区别。Lua 在语法上并没有区分这两个部分。

技术上访问表的数组部分比键值对部分更快。_然而_,除非您正在编写高性能代码,而且相关代码在需要每毫秒执行数百次的“热循环”中,否则您_不应该关心_。编写最明显的代码是在做什么。 写最合适的代码以理解算法。

如果“对象形”使用户更清楚 some_obj.GID 要访问的内容,与 some_obj[5] 更为不透明的“表格形式”相比,则应使用前者而不是后者。除非您手头有实际的性能指标,否则优先选择易于理解的代码。

2019-12-28 14:58:16