swift - Self 为 ClassA 或 ClassB 的协议扩展
问题描述
我有一个协议,我想在符合类是ClassA
OR ClassB
的情况下为其提供默认功能。是否可以||
在协议扩展 where 子句中使用?我尝试了以下方法,但它不起作用:
extension Protocol where Self: ClassA || Self: ClassB {
func method() {
// implementation if conforming class is ClassA OR ClassB
}
}
解决方案
不,您不能在协议扩展||
的子句中使用(或等效的东西) 。where
如果扩展方法需要两者都存在的某些功能,ClassA
那么ClassB
您可以在协议中定义它(两个类都符合),并将扩展限制到该协议。
推荐阅读
- python - 如何让 python 游戏,Flappy Bird 的管道出现?
- swift - 如何在 SwiftUI 中关闭 ResearchKit 模态视图?
- javascript - How can I avoid updating all instances of my function component with the useState hook in React.js?
- c# - Xamarin Android revert back window flags?
- c# - I need help understanding bool = false and the meaning of -1
- c++ - Why do I get the wrong address when referencing a global variable?
- php - 动态地回应 WordPress 帖子的类别信息
- javascript - 无法使用 Node.js 连接到 MySQL 数据库
- windows - 实时麦克风音频操作窗口
- python - 如何从值计数不满足条件的分类变量中删除行?