为什么这次迭代是随机的?

时间:2021-05-15 12:41:12

标签: arrays swift

说明

所以我的目的是迭代这个“地图”并让它按顺序打印每一对,但是,我随机得到了这些对。

代码和输出:

代码

let map: [Int : String] =
    [1000 : "M", 900 : "CM", 500 : "D", 400 : "CD", 100 : "C", 90 : "XC", 50 : "L", 40 : "XL", 10 : "X", 9 : "IX", 5 : "V", 4 : "IV", 1 : "I"]

for pair in map {
    print(pair)
}

Xcode 给出的输出之一:

(key: 10, value: "X")
(key: 50, value: "L")
(key: 5, value: "V")
(key: 4, value: "IV")
(key: 900, value: "CM")
(key: 500, value: "D")
(key: 1, value: "I")
(key: 1000, value: "M")
(key: 90, value: "XC")
(key: 9, value: "IX")
(key: 400, value: "CD")
(key: 40, value: "XL")
(key: 100, value: "C")

我想要的输出:

(key: 1000, value: "M")
(key: 900, value: "CM")
(key: 500, value: "D")
(key: 400, value: "CD")
(key: 100, value: "C")
(key: 90, value: "XC")
(key: 50, value: "L")
(key: 40, value: "XL")
(key: 10, value: "X")
(key: 9, value: "IX")
(key: 5, value: "V")
(key: 4, value: "IV")
(key: 1, value: "I")

1 个答案:

答案 0 :(得分:2)

正如 the documentation 中所说:

<块引用>

字典中键值对的顺序在突变之间是稳定的,但在其他方面是不可预测的。如果您需要键值对的有序集合并且不需要 Dictionary 提供的快速键查找,请参阅 KeyValuePairs 类型以获取替代方法。