不同类(但同一基类)使用相同的协议扩展?
创始人
2025-01-09 09:30:05
0

使用泛型和协议继承。

例如,我们有两个不同的类A和B,它们都是基于父类C,我们想为它们添加一个同样的协议扩展。我们可以这样做:

首先,我们定义一个协议,即我们想要实现的扩展:

protocol MyProtocol {
    func myFunction()
}

然后,我们可以使用协议继承来实现我们的扩展:

protocol MyProtocolA: MyProtocol {}
protocol MyProtocolB: MyProtocol {}

现在,我们可以在类A和类B中使用这个协议扩展:

class A: C, MyProtocolA {
    // ...
}

class B: C, MyProtocolB {
    // ...
}

extension MyProtocol where Self: C {
    func myFunction() {
        // ...
    }
}

这里,我们使用了泛型where子句,因为我们只希望将MyProtocol扩展应用于基类C的子类,而不是应用于任何类。

现在,类A和类B都可以使用相同的扩展了,而且我们还可以保证这个扩展只适用于基类C的子类。

相关内容

热门资讯

第7次性神器!互游辅助脚本“曝... 第7次性神器!互游辅助脚本“曝光开挂辅助攻略”1、完成互游辅助脚本的残局,帮助玩家取得所有比赛的胜利...
第七次性晓得!智星德州插件“曝... 第七次性晓得!智星德州插件“曝光开挂辅助神器”1、超多福利:超高返利,海量正版游戏,智星德州插件系统...
两次性黑科技!中至上饶麻将有挂... 两次性黑科技!中至上饶麻将有挂开挂“必备开挂辅助攻略”;1、上手简单,内置详细流程视频教学,新手小白...
1次性精通!wepoker私人... 1次性精通!wepoker私人局可以透视“推荐开挂辅助神器”1、游戏颠覆性的策略玩法,独创攻略技巧玩...
第4次性了解!一起宁德钓蟹技巧... 第4次性了解!一起宁德钓蟹技巧“总结开挂辅助器”1)一起宁德钓蟹技巧辅助挂:进一步探索一起宁德钓蟹技...
9次性发现!微信微乐小程序修改... 9次性发现!微信微乐小程序修改器“推荐开挂辅助app”运微信微乐小程序修改器辅助工具,进入游戏界面。...
第3次性普及!微信新众游辅助“... 第3次性普及!微信新众游辅助“科普开挂辅助攻略”1、首先打开微信新众游辅助最新版本,在微信新众游辅助...
7次性辅助挂!开心泉州小程序辅... 7次性辅助挂!开心泉州小程序辅助哪里查看“外挂开挂辅助挂”1)开心泉州小程序辅助哪里查看辅助挂:进一...
第6次性了解!新天道破解版“外... 第6次性了解!新天道破解版“外挂开挂辅助方法”1、每一步都需要思考,不同水平的挑战会更加具有挑战性,...
第八次性体悟!闲来透视辅助器最... 第八次性体悟!闲来透视辅助器最新版“了解开挂辅助方法”1)闲来透视辅助器最新版辅助挂:进一步探索闲来...