[英]Why can we use Error protocol as generic type?
为什么错误协议可能? 对于任何其他协议,我们都会收到错误
protocol SomeProtocol {
}
struct Test1<T> where T: SomeProtocol {
}
struct Test2<T> where T: Error {
}
let test1: Test1<SomeProtocol> = Test1() ----> Protocol 'SomeProtocol' as a type cannot conform to the protocol itself
let test2: Test2<Error> = Test2() ----> It's Ok
这只是规则中的一个例外。 它记录在这里:
例外
作为类型使用时,Swift协议
Error
符合自身; 没有 static 要求的@objc
协议也可以用作符合自身的类型。
如果不是这个异常,您将无法执行Result<T, Error>
或AnyPublisher<T, Error>
来表示“可能是任何错误的某些结果”或“可以发出任何错误的发布者” ”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.