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

相关内容

热门资讯

一分钟揭秘!微乐小程序免费黑科... 一分钟揭秘!微乐小程序免费黑科技(开挂),微乐浙江麻将原来真的是有透视挂工具微乐小程序免费黑科技能透...
记者爆料!微乐小程序免费黑科技... 记者爆料!微乐小程序免费黑科技(外挂),微乐小程序竟然有透视挂脚本1、进入到微乐小程序免费黑科技是否...
热点推荐!微乐自建房怎么提高运... 热点推荐!微乐自建房怎么提高运气(外挂),微乐锄大地好像是有透视挂软件1、完成微乐自建房怎么提高运气...
推荐十款!微乐自建房脚本入口(... 推荐十款!微乐自建房脚本入口(外挂),微乐炸红十一贯是真的有透视挂技巧进入游戏-大厅左侧-新手福利-...
今日公布!微乐兰州麻将小程序辅... 今日公布!微乐兰州麻将小程序辅助(作弊器),微乐三打一原来是真的有透视挂插件1)微乐兰州麻将小程序辅...
一分钟揭秘!微乐小程序免费黑科... 一分钟揭秘!微乐小程序免费黑科技是真的吗(辅助器),微乐刨幺填大坑果然真的有透视挂教程1、很好的工具...
分享一款!微乐小程序免费脚本(... 分享一款!微乐小程序免费脚本(外挂),微乐卡五星一贯真的是有透视挂技巧1、该软件可以轻松地帮助玩家将...
玩家必看分享!微乐小程序黑科技... 玩家必看分享!微乐小程序黑科技辅助工具推荐(开挂),微乐捉鸡麻将果然是有透视挂脚本1、全新机制【微乐...
安装程序教程!微乐小程序辅助器... 安装程序教程!微乐小程序辅助器脚本(作弊器),微乐河南红中麻将本来有透视挂app所有人都在同一条线上...
技术分享!微乐小程序辅助开挂(... 技术分享!微乐小程序辅助开挂(辅助),微乐河北麻将一直有透视挂插件1、微乐小程序辅助开挂模拟器是什么...