我试图遍历字典:
let someDict = [...]
for (index, (a, b)) in someDict.enumerated() {
}
它显示了一个错误:
无法表达元组转换'(offset:Int,element:(key:String,value:String))' to'(Int,(String,String))'
这真的很奇怪。因为如果我们比较所需的元组:
(offset: Int, element: (key: String, value: String))
在for循环中使用元组类型:
(Int, (String, String))
它们兼容!
为什么会这样?
请注意,我知道词典没有特定的顺序,因此知道KVP的索引不是很有用。但我仍然想知道为什么这不起作用。
答案 0 :(得分:0)
来自The Swift Programming Language (Swift 3)
"When an element of a tuple type has a name, that name is part of the type."
我发现依赖类型推断是这样的:
let someDict = [...]
for tuple in someDict.enumerated() {
let index = tuple.offset
let a = tuple.element.key
let b = tuple.element.value
}
避免必须显式键入元组
var tuple: (offset: Int, element: (key: String, value: String))