繁体   English   中英

为什么我们可以使用 Error 协议作为泛型类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM