Lua 中的pairs() 和ipairs() 有什么区别?
在Lua中,当我们想用for循环遍历给定的表时,我们同时使用thepairs()和ipairs()函数。这两个函数都返回键值对,其中键是元素的索引,值是存储在该索引表中的元素。
虽然它们都有一些相似之处,但也很高兴知道它们有一些我们应该注意的非常显着的差异。
pairs()andipairs()函数之间的第一个区别是pairs()函数不维护键顺序,而ipairs()函数肯定会。
示例
考虑下面显示的例子-
u={} u[1]="a" u[3]="b" u[2]="c" u[4]="d" u["aa"] = "zz" u[7] = "e" for key,value in ipairs(u) do print(key,value) end print(“---”) for key,value in pairs(u) do print(key,value) end
在上面的例子中,ipairs()函数将按数字顺序打印键的顺序,而pairs()函数不保证它。
此外,如果我们更仔细地查看示例,我们将看到第二个区别,即该ipairs()函数不返回表中存在的非数字键。
输出结果
考虑参考输出。
1 a 2 c 3 b 4 d --- 1 a 2 c 3 b 4 d 7 e aa zz