AssociatedType和Self.AssociatedType有何区别?
创始人
2024-09-20 19:01:04
0

AssociatedType和Self.AssociatedType都用于协议中,表示将类型信息留给实现该协议的类型来指定。区别在于,在协议中使用AssociatedType时,需要在实现该协议的类型中使用具体的类型进行替换;而在使用Self.AssociatedType时,则是在协议中已经确定了该类型,实现该协议的类型不需要再进行替换。

下面是对两者的代码实现示例:

使用AssociatedType:

protocol MyProtocol { associatedtype MyType func method(with myValue: MyType) }

class MyClass: MyProtocol { typealias MyType = String func method(with myValue: String) { // 实现方法 } }

使用Self.AssociatedType:

protocol MyProtocol { var myValue: String { get } func method() }

extension MyProtocol { func method() { print(Self.self) // 打印结果为实现该协议的类型名 print(self.myValue) } }

class MyClass: MyProtocol { var myValue = "Hello" }

let obj = MyClass() obj.method() // 打印结果为MyClass以及Hello

相关内容

热门资讯

透视了解!拱趴游戏破解器,we... 透视了解!拱趴游戏破解器,we poker免费辅助器(一直是真的有挂)1、任何we poker免费辅...
透视教学!aapoker插件下... 透视教学!aapoker插件下载(透视)透视软件(一直是有挂)1、操作简单,无需注册,只需要使用手机...
透视辅助!哈糖大菠萝开挂,po... 透视辅助!哈糖大菠萝开挂,pokemomo辅助工具(一贯真的有挂)一、哈糖大菠萝开挂软件透明挂的定义...
透视规律!aapoker透视怎... 透视规律!aapoker透视怎么用(透视)真的假的(本来是真的有挂)1、进入到aapoker透视怎么...
透视有挂!哈糖大菠萝怎么挂,哈... 透视有挂!哈糖大菠萝怎么挂,哈糖大菠萝能开挂吗(切实真的有挂)亲,关键说明,哈糖大菠萝能开挂吗赛季回...
透视游戏!aapoker安装包... 透视游戏!aapoker安装包怎么使用(透视)发牌逻辑(果然真的是有挂)亲,关键说明,aapoker...
透视工具!约局吧开挂,poke... 透视工具!约局吧开挂,pokemmo手机版脚本(确实真的有挂)亲,关键说明,pokemmo手机版脚本...
透视辅助!aapoker能控制... 透视辅助!aapoker能控制牌吗(透视)发牌逻辑(总是有挂);1)aapoker能控制牌吗辅助挂:...
透视辅助!佛手大菠萝辅助,哈糖... 透视辅助!佛手大菠萝辅助,哈糖大菠萝助手(都是有挂);1、让任何用户在无需佛手大菠萝辅助AI插件第三...
透视黑科技!拱趴大菠萝挂怎么安... 透视黑科技!拱趴大菠萝挂怎么安装,xpoker辅助控制(切实有挂)1、起透看视 拱趴大菠萝挂怎么安装...