从 class 继承协议?
Protocol inheritance from class?
我阅读了有关 Protocols 的文档,但找不到有关从 class 继承协议的任何信息,但代码可以编译。据我所知,协议只能继承其他协议,我从未见过继承自class的协议。我什至不知道允许这种行为的语言。
class A {
}
protocol X: A {
}
// forced to inherit from class A, because of X protocol
class B: A, X {
}
这是某种错误吗?
实施于 Swift 5:来自 Swift 5 Release notes
协议现在可以将它们的符合类型限制为低于class 给定 class 的类型。支持两种等效形式:
protocol MyView: UIView { /*...*/ }
protocol MyView where Self: UIView { /*...*/ }
请参阅 John Sundell 的 tweet,展示了一个可能的用例
我阅读了有关 Protocols 的文档,但找不到有关从 class 继承协议的任何信息,但代码可以编译。据我所知,协议只能继承其他协议,我从未见过继承自class的协议。我什至不知道允许这种行为的语言。
class A {
}
protocol X: A {
}
// forced to inherit from class A, because of X protocol
class B: A, X {
}
这是某种错误吗?
实施于 Swift 5:来自 Swift 5 Release notes
协议现在可以将它们的符合类型限制为低于class 给定 class 的类型。支持两种等效形式:
protocol MyView: UIView { /*...*/ }
protocol MyView where Self: UIView { /*...*/ }
请参阅 John Sundell 的 tweet,展示了一个可能的用例