我想我注意到Swift字典枚举实现中的错误。
此代码段的输出:
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
for (key, value) in someDict.enumerated() {
print("Dictionary key \(key) - Dictionary value \(value)")
}
应为:
Dictionary key 2 - Dictionary value Two
Dictionary key 3 - Dictionary value Three
Dictionary key 1 - Dictionary value One
而不是:
Dictionary key 0 - Dictionary value (key: 2, value: "Two")
Dictionary key 1 - Dictionary value (key: 3, value: "Three")
Dictionary key 2 - Dictionary value (key: 1, value: "One")
任何人都可以解释这种行为吗?
答案 0 :(得分:3)
不是错误,是由于使用错误的API引起的混乱。
使用这种( 与词典相关的 )语法,您可以获得预期的结果
for (key, value) in someDict { ...
其中
key
是字典键value
是字典值。使用( 与数组相关的 )语法
for (key, value) in someDict.enumerated() { ...
实际上是
for (index, element) in someDict.enumerated() { ...
字典被视为元组和
的数组key
是索引 value
是元组 ("key": <dictionary key>, "value": <dictionary value>)