除了Nirav D的答案;我觉得以下可能会有所帮助:
有一种方法updateValue(_:forKey:)
更新(或添加新的键值对,如果该键不存在)给定键的值。
所以,你的代码应该是这样的:
var array = [String:String]()
for i in 0...7 {
array.updateValue(String(i), forKey: String(i))
}
print(array)
// Output
["2": "2", "1": "1", "6": "6", "4": "4", "3": "3", "7": "7", "0": "0", "5": "5"]
斯威夫特总是惊人的,你可以定义+=
运营商,使其更容易。所以代码如下:
// Defining += operator
func += <K, V> (inout left: [K:V], right: [K:V]) {
for (k, v) in right {
left.updateValue(v, forKey: k)
}
}
// Usage
var array = [String:String]()
for i in 0...7{
array += [String(i):String(i)]
}
print(array)
// Output
["2": "2", "1": "1", "6": "6", "4": "4", "3": "3", "7": "7", "0": "0", "5": "5"]
哈哈,你说得对,谢谢。 –
@ZzwTOM欢迎队友:),请注意,这将给你的关键和值从0到7,如果你想1到8然后范围应该是'1 ... 8' –
还要注意,因为这是一本字典,不要期望打印字典的输出与字典没有排序后添加的顺序相同。 – rmaddy