gpt4 book ai didi

loops - ipairs 在未排序的数组上可靠吗?

转载 作者:行者123 更新时间:2023-12-04 17:18:38 24 4
gpt4 key购买 nike

我想知道是否有人可以确认您是否可以信任ipairs()到;对于索引完整但未排序的表,按顺序返回所有索引。

我们的项目中都有代码使用 pairs() 克隆表。 ,但是任何克隆的数组都是无序的。但是,我不确定这是否有问题。

相比:

A = {10, 20, 30, 40, 50, 60}

到:
B = {[1] = 10, [2] = 20, [3] = 30, [4] = 40, [5] = 50, [6] = 60}

如果你用 pairs() 循环这些,第一个是订购的,而另一个不是。 (附带说明,如果您执行几次后插入, B 会突然排序)

回到最初的问题。好像 B以上使用 ipairs() 按顺序迭代所有值,但这总是有保证的吗?

最佳答案

是的,会的。
ipairs()将从索引 1 开始迭代至 n连续,并突破第一个不连续的索引。

例如:

B = {[1] = 10, [2] = 20, [3] = 30, [4] = 40, [5] = 50, [6] = 60}    

for i,v in ipairs(B) do
print(i,v)
end

will print:
1 10
2 20
3 30
4 40
5 50
6 60

但,
B = {[1] = 10, [2] = 20, [3] = 30, [5] = 40, [6] = 50, [7] = 60}    

for i,v in ipairs(B) do
print(i,v)
end

will print
1 10
2 20
3 30

因为 1,2,3连续,但在 4 中突破, 所以 ipairs停止。

关于loops - ipairs 在未排序的数组上可靠吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27549380/

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