我有以下功能:
func myFunc<T: MyProtocol>(param: ParamType, completion: @escaping (Result<T, NetworkError>) -> ())
然后我称之为:
myFunc(param) { response in
}
我得到“通用参数'T'无法推断”,我怎么能在我的通话中设置T类型?谢谢。
此代码应该有效:
protocol MyProtocol { }
struct ParamType { }
class My: MyProtocol { }
enum Result<T, E> {
case result(T)
case fail(E)
}
class NetworkError: Error { }
func myFunc<T: MyProtocol>(param: ParamType, completion: @escaping (Result<T, NetworkError>) -> Void) { }
myFunc(param: ParamType()) { (res: Result<My, NetworkError>) -> Void in
print(res)
}