你好,我尝试在Xcode9中打印字典项,像这样:
var items = ["Bear":"0", "Glass":"1", "Car":"2"]
for (key,value) in items{
print("\(key) : \(value)")
}
输出:
Glass : 1
Bear : 0
Car : 2
为什么输出不是这样的:Bear: 0, Glass:1, Car:2?我不理解这个输出的原因。
你好,我尝试在Xcode9中打印字典项,像这样:
var items = ["Bear":"0", "Glass":"1", "Car":"2"]
for (key,value) in items{
print("\(key) : \(value)")
}
输出:
Glass : 1
Bear : 0
Car : 2
字典:
字典是一种无序的集合,用于存储相同类型键和相同类型值之间的关联。
每个值都与唯一的键相关联,该键作为识别该值的标识符在字典中起作用。与数组中的项不同,字典中的项没有特定的顺序。
数组 - 数组将同一类型的值存储在有序列表中。
集合 - 集合将同一类型的不同值存储在无序集合中。
来自Apple文档
Swift
中的Dictionary
是由哈希映射实现的。不能保证Dictionary
中的项目与添加它们时的顺序相同。
唯一可以保留项目顺序的容器是Array
。您可以使用它来存储元组,例如:
var items : [(key: String, value: String)] = [(key: "Bear", value: "0"),(key: "Glass", value: "1"), (key: "Car", value: "2")]
Dictionary
按下标查找项目的功能。Dictionary
集合没有排序,也就是说 它根本不保证有序。但是 Array
是有序的。 Dictionary
按离散顺序添加值,而 Array
按连续顺序添加值。
你不能像这样拥有一个 Array
:
["a", "b", ... , "d", ... , ... , "g"] //Discrete index aren't allowed. You just can't skip any index in between.
相反,您必须将上述数组设置为以下方式:
["a", "b", "d", "g"]
Dictionary
(您不必维护先前的索引即可拥有值)。因此,您可以随意插入值。它不会打扰您维护任何索引。