📅  最后修改于: 2023-12-03 15:02:48.663000             🧑  作者: Mango
在 Lua 中,pairs
和 ipairs
都是用于遍历数组或者表的迭代器函数。但是它们之间还是存在一些区别的。
pairs
函数遍历表中所有的键值对(key-value pairs),并且是按照键名的任意顺序返回的。它的语法如下所示:
for key, value in pairs(table) do
-- 这里的 key 是键名,value 是键值
end
下面是一个示例:
t = {key1 = "value1", key2 = "value2", key3 = "value3"}
for key, value in pairs(t) do
print(key, value)
end
-- key2 value2
-- key3 value3
-- key1 value1
我们可以发现,pairs
函数遍历的顺序并不是按照键名的顺序返回的。
ipairs
函数遍历数组,它是按照键名从小到大的顺序返回的。它的语法如下所示:
for index, value in ipairs(table) do
-- 这里的 index 是数组下标,value 是数组元素的值
end
下面是一个示例:
t = {"value1", "value2", "value3"}
for index, value in ipairs(t) do
print(index, value)
end
-- 1 value1
-- 2 value2
-- 3 value3
我们可以发现,ipairs
函数遍历数组是从下标 1 开始的,并且按照下标的顺序返回。
pairs
函数遍历表中所有的键值对,并且是按照键名的任意顺序返回的。ipairs
函数遍历数组,是按照键名从小到大的顺序返回的。因此,在使用它们遍历数组或者表的时候,需要根据实际需求来选择使用哪个函数。