我有一个协议A
:
protocol A { }
执行协议B
之间有什么区别:
protocol B: A { }
而不是这样实现它:
protocol B where Self: A { }
?
对于一个我不能用另一个做的人,我该怎么办?我可以通过切换到另一个问题来解决我可以修复的问题?
一个区别在于您如何符合协议。
在前一种情况下,与B
的一致性意味着与A
的一致性。
struct BImpl: B {} // `A` is implied here
在后一种情况下,与B
的一致性要求与A
一致,但它并不隐含地创建一个:
struct BImpl: A, B {} // `A` is explicitly required here