首页 > 解决方案 > Self 为 ClassA 或 ClassB 的协议扩展

问题描述

我有一个协议,我想在符合类是ClassA OR ClassB的情况下为其提供默认功能。是否可以||在协议扩展 where 子句中使用?我尝试了以下方法,但它不起作用:

extension Protocol where Self: ClassA || Self: ClassB {
    func method() {
        // implementation if conforming class is ClassA OR ClassB
    }
}

标签: swiftprotocols

解决方案


不,您不能在协议扩展||的子句中使用(或等效的东西) 。where

如果扩展方法需要两者都存在的某些功能,ClassA那么ClassB您可以在协议中定义它(两个类都符合),并将扩展限制到该协议。


推荐阅读