table 还是对象更有效率?
Is it more efficient to have a table or an object?
使用 table 而不是对象会更节省内存,或者更重要的是,速度更高效吗?作为参考,这是我将使用的 table 类型的示例。
[3, 4, 5, -1, 2, 真, 32]
或对象形式:
{x1=3, y1=4, x2=5, y2=-1, GID=2, alive=true, LID=32}
另外,单一类型的 table 是否比数字和布尔值等多种类型更有效?
Lua 只有 table。您可能在谈论 table 的数组部分和 key/value 对部分之间的区别。 Lua 这两件事之间没有 句法 区别。
从技术上讲,访问 table 的数组部分比访问 key/value 对部分更快。 但是,除非你正在编写高性能代码,并且有问题的代码在每毫秒需要执行数百次的 "hot loop" 内,否则你 不应该关心。编写使您正在做的事情最明显的代码。写出最适合理解算法的代码。
如果 "object form" 与 some_obj[5]
的更不透明 "table form" 相比,让用户更清楚 some_obj.GID
试图访问的内容,则使用后者而不是前者。除非您手头有实际的性能指标,否则更喜欢易于理解的代码。
使用 table 而不是对象会更节省内存,或者更重要的是,速度更高效吗?作为参考,这是我将使用的 table 类型的示例。
[3, 4, 5, -1, 2, 真, 32]
或对象形式:
{x1=3, y1=4, x2=5, y2=-1, GID=2, alive=true, LID=32}
另外,单一类型的 table 是否比数字和布尔值等多种类型更有效?
Lua 只有 table。您可能在谈论 table 的数组部分和 key/value 对部分之间的区别。 Lua 这两件事之间没有 句法 区别。
从技术上讲,访问 table 的数组部分比访问 key/value 对部分更快。 但是,除非你正在编写高性能代码,并且有问题的代码在每毫秒需要执行数百次的 "hot loop" 内,否则你 不应该关心。编写使您正在做的事情最明显的代码。写出最适合理解算法的代码。
如果 "object form" 与 some_obj[5]
的更不透明 "table form" 相比,让用户更清楚 some_obj.GID
试图访问的内容,则使用后者而不是前者。除非您手头有实际的性能指标,否则更喜欢易于理解的代码。