📜  lua 对和 ipairs 的区别 - Lua (1)

📅  最后修改于: 2023-12-03 15:02:48.663000             🧑  作者: Mango

Lua 对和 ipairs 的区别

在 Lua 中,pairsipairs 都是用于遍历数组或者表的迭代器函数。但是它们之间还是存在一些区别的。

pairs

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

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 函数遍历数组,是按照键名从小到大的顺序返回的。

因此,在使用它们遍历数组或者表的时候,需要根据实际需求来选择使用哪个函数。