作为尝试创建一个受this blog post孤独的有序词典的一部分,我试图实现一个地图功能。我的有序字典本质上是一个元组数组的包装结构。这是我的结构的相关部分:
struct od<kT: Hashable, vT> {
typealias kv = (key:kT, value:vT)
private var tuples: Array<kv> = []
init() {}
init(_ tupleArgs: kv...) {
tuples = tupleArgs
}
func map<nkT:Hashable, nvT>(transform: (kv) -> (key:nkT, value:nvT)) -> od<nkT, nvT> {
let arr = tuples.map(transform)
return od<nkT, nvT>(arr)
}
}
尝试初始化od<nkT, nvT>(are)
处的返回值时出现问题,我得到的错误是:
Cannot convert value of type '[(key: kT, value: vT)]' to expected argument type '[(key: _, value: _)]'
我最初在地图功能的主体上排成一行,错误信息有点神秘,但基本相同。 (Xcode抱怨转换函数的类型而不是返回值的类型)
如果它有用,我也有a gist with the full code。