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

相关内容

热门资讯

黑科技插件(wepOke)黑科... 黑科技插件(wepOke)黑科技透明挂辅助app(透视)解密教程(确实真的是有挂)一、wepOke软...
黑科技安装(德州wepower... 黑科技安装(德州wepower)黑科技透明挂辅助教程(透视)扑克教程(总是是真的有挂)1、玩家可以在...
辅助黑科技(wepoKe)黑科... 辅助黑科技(wepoKe)黑科技透明挂辅助神器(透视)系统教程(总是是有挂)1、辅助黑科技(wepo...
黑科技软件(德州)外挂辅助挂(... 黑科技软件(德州)外挂辅助挂(透视)大神讲解(原来真的有挂);1、进入游戏-大厅左侧-新手福利-激活...
黑科技神器(德州aa扑克)外挂... 黑科技神器(德州aa扑克)外挂透视辅助技巧(透视)教你教程(其实真的有挂);德州aa扑克是一种具有地...
黑科技软件(wepoKE)黑科... 黑科技软件(wepoKE)黑科技透明挂辅助神器(透视)黑科技教程(都是真的是有挂)1、下载好wepo...
黑科技辅助挂(aapokeR)... 黑科技辅助挂(aapokeR)外挂透视辅助方法(透视)黑科技教程(都是是真的有挂)1、许多玩家不知道...
黑科技ai(红龙扑克)外挂辅助... 黑科技ai(红龙扑克)外挂辅助技巧(透视)2025新版技巧(本来是有挂);1、任何红龙扑克ai辅助神...
黑科技免费(wPk)外挂透视辅... 黑科技免费(wPk)外挂透视辅助挂(透视)德州教程(其实是有挂);1、点击下载安装,德州插件透视分类...
黑科技最新(线上wpk德州ai... 黑科技最新(线上wpk德州ai)外挂透视辅助教程(透视)玩家教程(竟然存在有挂);1、每一步都需要思...