我怎么能推断出一个通用函数的类型,而不是像这样。
let a: MyType = genericFunction()
或这些投法。
let a = MyType(genericFunction())
let a = genericFunction() as MyType
有条件的转换并不能推断出类型。
let a = genericFunction() as? MyType
还有什么能推断出类型?
更新。
正如Victor Pro所假设的那样,函数应该返回一个通用类型。它可能是这样的。
func genericFunction<T>() -> T {
}
我假设你的 genericFunction()
有一个通用的返回类型。然后,另一种推断类型的方法是将其作为函数的参数传递给函数。func genericFunction<T>(returnType: T.Type) -> T {...}
. 现在你可以通过例如以下方式调用它 let val = genericFunction(String.self)
的方式调用它,因此 val
属于 String
.