AssociatedType与Self.AssociatedType之间的区别
创始人
2024-09-20 19:01:09
0

将AssociatedType定义为类型的协议,使用关联类型(associatedtype)指定此协议的类型实现,使用Self.AssociatedType指定协议实现者的类型。

AssociatedType定义:

protocol SomeProtocol {
   associatedtype ItemType
   func append(_ item: ItemType)
}

struct Stack: SomeProtocol {
   // 用 T 替代 ItemType
   typealias ItemType = T
   var items = [ItemType]()
   mutating func push(_ item: ItemType) {
       items.append(item)
   }
   mutating func pop() -> ItemType {
       return items.removeLast()
   }
   // 遵循协议 实现使用另一种类型的方法
   mutating func append(_ item: Int) {
       self.push(item as! T)
   }
}

Self.AssociatedType定义:

protocol SomeProtocol {
   associatedtype ItemType
   func append(_ item: Self.ItemType)
}

struct Stack: SomeProtocol {
   var items = [T]()
   mutating func push(_ item: T) {
       items.append(item)
   }
   mutating func pop() -> T {
       return items.removeLast()
   }
   // 遵循协议 实现使用另一种类型的方法
   mutating func append(_ item: Int) {
       self.push(item as! T)
   }
}

相关内容

热门资讯

透视ai代打“新佛手在线辅助软... 新佛手在线辅助软件是一款专注玩家量身打造的游戏记牌类型软件,在新佛手在线辅助软件这款游戏中我们可以记...
分享给玩家“隶属茶苑苹果手机辅... 【亲,隶属茶苑苹果手机辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款隶属茶苑苹果手机辅助中打...
透视数据“桃乐甘肃麻将辅助器”... 透视数据“桃乐甘肃麻将辅助器”从来有辅助平台(了解有挂)您好:桃乐甘肃麻将辅助器这款游戏可以开挂,确...
透视讲解“新道游房卡辅助器”起... 透视讲解“新道游房卡辅助器”起初有辅助脚本(有挂规律);无需打开直接搜索加薇136704302(咨询...
教程辅助“长春科乐天天踢辅助”... 长春科乐天天踢辅助开挂教程视频分享装挂详细步骤在当今的网络游戏中,长春科乐天天踢辅助作为一种经典的娱...
揭秘“传送屋app辅助下载”原... 揭秘“传送屋app辅助下载”原先有辅助神器(有挂总结)1、下载安装好传送屋app辅助下载,进入游戏主...
信息共享“多多科技手游辅助”原... 多多科技手游辅助是一款专注玩家量身打造的游戏记牌类型软件,在多多科技手游辅助这款游戏中我们可以记录下...
实操分享“酷玩联盟破解版下载”... 大家好,今天小编来为大家解答酷玩联盟破解版下载这个问题咨询软件客服可以免费测试直接加微信(13670...
我来向大家传授“热血江湖辅助工... 我来向大家传授“热血江湖辅助工具”从前有辅助开挂工具(竟然有挂);打开点击测试直接进入微信(1367...
今日科普“微信四川熊猫辅助软件... 您好:微信四川熊猫辅助软件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...