对于那些想知道为什么
ipairs 不总是输出表中所有值的人,这就是原因(我本来可以在注释中解释这个问题,但我没有足够的好男孩积分)。
函数
ipairs 仅适用于具有键为 1 的元素的表格。如果有一个键为 1 的元素,则 ipairs 将尝试按顺序遍历表格,从 1 -> 2 -> 3 -> 4 等,直到它找不到下一个元素。元素的顺序并不重要。
不符合这些要求的表格将无法与
ipairs 一起使用,应改用
pairs。
示例:
ipairsCompatable = {"AAA", "BBB", "CCC"}
ipairsCompatable2 = {[1] = "DDD", [2] = "EEE", [3] = "FFF"}
ipairsCompatable3 = {[3] = "work", [2] = "does", [1] = "this"}
notIpairsCompatable = {[2] = "this", [3] = "does", [4] = "not"}
notIpairsCompatable2 = {[2] = "this", [5] = "doesn't", [24] = "either"}
ipairs尽可能进行迭代,但不会遍历表中的任何其他元素。
kindofIpairsCompatable = {[2] = 2, ["cool"] = "bro", [1] = 1, [3] = 3, [5] = 5 }
打印这些表格时,以下是输出结果。为了进行比较,我还包括了pairs的输出结果。
ipairs + ipairsCompatable
1 AAA
2 BBB
3 CCC
ipairs + ipairsCompatable2
1 DDD
2 EEE
3 FFF
ipairs + ipairsCompatable3
1 this
2 does
3 work
ipairs + notIpairsCompatable
pairs + notIpairsCompatable
2 this
3 does
4 not
ipairs + notIpairsCompatable2
pairs + notIpairsCompatable2
2 this
5 doesnt
24 either
ipairs + kindofIpairsCompatable
1 1
2 2
3 3
pairs + kindofIpairsCompatable
1 1
2 2
3 3
5 5
cool bro
arr = { apples = { 0, 'a',“红色”,5 }, oranges = { 1, 'o',“橙色”,12 }, pears = { 2, 'p',“绿色”,7 }, }
可以在以下网址中看到工作示例:http://ideone.com/yWKHx7 - Kjell Hedström