从类中继承协议?

3
我阅读了有关 协议 的文档,没有找到有关从类继承协议的任何信息,但代码可以编译。就我所知,协议只能继承其他协议,我从未见过继承自类的协议。我甚至不知道有哪种语言允许这样的行为。
class A {

}

protocol X: A {

}
// forced to inherit from class A, because of X protocol
class B: A, X {

}

这是某种 bug 吗?


我认为这与 protocol X where Self:A 相同,而且这种简写方式是最近添加的(Swift 5?)。 - Joakim Danielson
1个回答

13

在 Swift 5 中实现:来自 Swift 5 发布说明

协议现在能够约束其遵循类型为某个给定类的子类。支持两种等效形式:

protocol MyView: UIView { /*...*/ }
protocol MyView where Self: UIView { /*...*/ } 

见John Sundell的推文,展示了一个可能的用例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接