跳到主要内容

循环方面

在 Pluto 中,pairsipairs 函数经过了优化。一般来说,使用 pairsipairs 进行循环比它们在 Lua 中的对应操作要快 3.5 倍

它是如何工作的?

但它并不是在所有情况下都能发挥作用,迭代器的状态存储在这些函数返回的 to-be-closed 变量中,也就是它们给出的最后一个变量。如果交互或修改这个变量,优化就不会发生。

pairs: next, table, nil, nil
ipairs: ipairsaux, table, integer, nil

只要不访问最后一个 nil 值,就不会有问题。

信息

这个优化是由 Xmelia Hermit 发布的。