Lua 中 pairs() 和 ipairs() 的区别是什么?
在 Lua 中,当我们想要使用 for 循环迭代给定表时,我们会同时使用 **pairs()** 和 **ipairs()** 函数。这两个函数都返回键值对,其中键是元素的索引,值是存储在该索引表中的元素。
虽然两者有一些相似之处,但了解它们之间一些显著的区别也很重要。
**pairs()** 和 **ipairs()** 函数之间的第一个区别是,**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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP