当我尝试使用以下代码时,我正在摆弄Swift游乐场中的泛型类型:
simple_query()
注意:此代码是假设的,并不意味着在现实世界中做任何事情。
在第12行,我从class Node<T> {
let value: T
init(_ t: T) {
self.value = t
}
func convert<U>(to type: U.Type) -> Node<U>? {
guard let new = value as? U else {
return nil
}
return Node(new)
}
}
返回新的Node
,我收到以下错误消息:
Node.convert(_:)
现在这对我来说似乎很奇怪。理论上,既然我们可以创建任何类型的U' is not convertible to 'T'
,那么我们是否应该能够使用任何泛型类型来初始化它?这是否与类型推断无法推断类型有关?