在Swift中枚举字典

杰拉姆·库马尔(Jayram kumar)

我想我注意到了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章