我想我注意到了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")
谁能解释这个现象?
这不是一个错误,因为使用了错误的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>)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句