var letters = ["a": "Alpha", "b": "Bravo", "c": "Charlie", "d": "Delta"]
for (letter, pilotAlphabet) in letters {
print("\(letter) stands for \(pilotAlphabet)")
}
这是我在 Playgrounds 上的代码。控制台给出了这个:
b stands for Bravo
a stands for Alpha
d stands for Delta
c stands for Charlie
我想知道为什么这个结果不是按照我给出的顺序排列的。
最佳答案
letters
是一个 Dictionary
,其键和值都是 String
。根据定义,字典是一个无序集合,因此在迭代字典的键值对时,排序不会与将值添加到字典的顺序相同,也不会按字母顺序排列。
如果您需要按字母顺序显示键值对,可以通过在 Dictionary
上调用 sorted
并迭代生成的 Array 来实现元组的
。
var letters = ["a": "Alpha", "b": "Bravo", "c": "Charlie", "d": "Delta"]
for (letter, pilotAlphabet) in letters.sorted(by: {$0.key<$1.key}) {
print("\(letter) stands for \(pilotAlphabet)")
}
输出:
a stands for Alpha
b stands for Bravo
c stands for Charlie
d stands for Delta
关于arrays - Swift Loops 控制台的顺序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52040310/