gpt4 book ai didi

Swift - 继承协议(protocol)和将 Self 约束到协议(protocol)之间的区别

转载 作者:行者123 更新时间:2023-11-28 10:06:57 25 4
gpt4 key购买 nike

我有一个协议(protocol)A:

protocol A { }

像这样实现协议(protocol) B 有什么区别:

protocol B: A { }

与这样实现相比:

protocol B where Self: A { }

?

我可以用一个做什么,而另一个不能做什么?我会在哪里遇到一个可以通过切换到另一个来解决的问题?

最佳答案

一个区别在于您如何遵守协议(protocol)。

在前一种情况下,符合 B 意味着符合 A

struct BImpl: B {} // `A` is implied here

在后一种情况下,对 B 的一致性需要对 A 的一致性,但它不会隐式地创建一个:

struct BImpl: A, B {} // `A` is explicitly required here

关于Swift - 继承协议(protocol)和将 Self 约束到协议(protocol)之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52229096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com