Lua 中的 pairs() 和 ipairs() 函数是干什么的?

作为一个 Lua 的编程初学者,我在很多例子代码中经常看到这个函数,尤其是在遍历数组的 for 循环中。但是我实际上并不明白这个函数是干什么的,以及为什么我应该使用它。貌似我写了很多类似的 for 循环,但从来没有使用过 pairs() 或 ipairs() 函数。

点赞
用户2858170
用户2858170

从 Lua 5.4 参考手册中:

ipairs (t)

返回三个值(迭代器函数、表 t 和 0),以便构造

 for i,v in ipairs(t) do body end

将迭代键值对(1,t[1])、(2,t[2])等直到第一个不存在的索引。

pairs (t)

如果表 t 具有元方法 __pairs,则使用 t 作为参数调用它并返回调用的前三个结果。

否则,返回三个值:下一个函数、表 t 和 nil,以便构造

 for k,v in pairs(t) do body end

将迭代表 t 的所有键值对。

https://www.lua.org/manual/5.4/manual.html#pdf-ipairs

https://www.lua.org/manual/5.4/manual.html#pdf-pairs

2021-03-15 07:05:29