我有一个枚举声明为Result<T, NSError>
。就像在Alamofire中一样
有一个符合协议地址
struct City: Address {
let title:String?
}
在网络请求和映射之后,我得到了Result<City,NSError>
当我尝试将此结果传递给具有签名
的方法时,问题就出现了 func checkResult(resul:Result<Address, NSError>)
编译器警告我“无法将Result<City,NSError>
类型的值转换为预期的参数类型Result<Address,NSError>
”
但是City符合Address,我希望能够将泛型结构传递给方法(因为有许多Address对象,比如街道,房屋等) 有没有办法让编译器沉默?
答案 0 :(得分:1)
将您的功能转换为通用功能:
func checkResult<T: Address>(result: Result<T, NSError>) {
// check
}