gpt4 book ai didi

for-loop - Lua 中的pairs() 和ipairs() 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 20:16:11 24 4
gpt4 key购买 nike

在 for 循环中,使用pairs() 和ipairs() 循环有什么区别?此页面同时使用:Lua Docs

使用 ipairs():

a = {"one", "two", "three"}
for i, v in ipairs(a) do
print(i, v)
end

结果:
1   one
2 two
3 three

与对():
a = {"one", "two", "three"}
for i, v in pairs(a) do
print(i, v)
end

结果:
1   one
2 two
3 three

你可以在这里测试: Lua Demo

最佳答案

pairs()ipairs() 略有不同。

  • pairs() 返回键值对,主要用于关联表。 key 顺序未指定。
  • ipairs() 返回索引值对,主要用于数字表。数组中的非数字键将被忽略,而索引顺序是确定性的(按数字顺序)。

  • 下面的代码片段说明了这一点。
    > u={}
    > u[1]="a"
    > u[3]="b"
    > u[2]="c"
    > u[4]="d"
    > u["hello"]="world"
    > for key,value in ipairs(u) do print(key,value) end
    1 a
    2 c
    3 b
    4 d
    > for key,value in pairs(u) do print(key,value) end
    1 a
    hello world
    3 b
    2 c
    4 d
    >

    当您创建一个没有键的表时(如您的问题),它表现为一个数字数组,行为或对和 ipairs 是相同的。
    a = {"one", "two", "three"}

    相当于 a[1]="one" a[2]="two" a[3]="three"并且 pairs()ipairs() 将是相同的(除了在 pairs() 中不能保证的排序)。

    关于for-loop - Lua 中的pairs() 和ipairs() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108794/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com