【问题标题】:Performance impact of using Colon vs Dot for function declarations in large lua tables在大型 lua 表中使用冒号与点进行函数声明的性能影响
【发布时间】:2021-05-18 01:48:07
【问题描述】:

我养成了用冒号而不是点来声明几乎所有模块的功能的习惯,但我不使用太多 OOP 并且几乎从不使用“self”。 每次调用函数时将 self 作为参数传递似乎是多余的,尤其是在表非常大的情况下。

这对性能有影响吗?是否值得将我所有的函数声明更改为使用点?

【问题讨论】:

  • 遵循“始终使用冒号语法”的风格是可以的(即使您不需要 self 内部方法)。这样,在调用冒号方法和非冒号方法时,您将永远不会混淆它们。它看起来一致。例如,Fengari 对所有暴露给 Lua 的 JS 对象的方法施加“总是使用冒号”样式。对性能的影响非常小。

标签: lua lua-table


【解决方案1】:

将单个附加表引用传递给函数不会对性能产生太大影响。这与表格大小无关,因为表格不会被复制。

这似乎是编程风格的问题,而不是性能问题。对模块函数使用冒号语法是非常少见的,因为这个习惯用法显然是用于实际的方法调用。因此,在不必要的地方使用它的库会让任何其他 Lua 程序员感到非常困惑。

【讨论】:

  • 虽然冒号语法在你从不使用 self 的情况下实际上没有意义,但如果你有可能有一天会使用 self 或者你在某些情况下使用它,你可能会使用它使您的界面保持一致的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
相关资源
最近更新 更多