【发布时间】:2016-03-13 12:08:57
【问题描述】:
我正在将一些“旧”的 Swift 代码转换为 Swift 2.0,但遇到了一个我无法摆脱的错误。
我的函数接收一个类型的数组(随便),并返回一个相同类型的新数组。
此代码不再适用于 Swift 2.0:
func makePattern1<T>(var list: Array<T>) -> Array<T> {
let theType = list.dynamicType
var result = theType()
for i in 1..<list.count {
result.append(list[i])
result.append(list[i-1])
}
return result
}
给出错误消息:“从元类型值初始化必须明确引用'init'”。
更正代码:
var result = theType.init()
给出“没有更多上下文的表达式类型不明确”错误。
我错过了什么?
【问题讨论】:
-
您有这样做的理由吗?看起来你想要的可以通过
map更轻松地完成。 -
另外,是什么阻止你说
var result = Array<T>()? -
var result = Array<T>()工作正常,谢谢。 -
你能举一个
map的例子吗?
标签: swift generics swift2 introspection