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)
   }
}

相关内容

热门资讯

黑科技计算(德州之星)外挂辅助... 黑科技计算(德州之星)外挂辅助app(透视)黑科技教程(果然真的有挂)1、完成德州之星的残局,帮助玩...
黑科技软件(wpK)外挂透视辅... 黑科技软件(wpK)外挂透视辅助技巧(透视)可靠教程(切实存在有挂)1、玩家可以在wpK软件透明挂俱...
黑科技美元局(we poker... 黑科技美元局(we poker)黑科技透明挂辅助挂(透视)解密教程(原来真的是有挂)该软件可以轻松地...
黑科技脚本(WePoKer)黑... 黑科技脚本(WePoKer)黑科技透明挂辅助器(透视)透明教程(确实有挂)1、下载好WePoKer辅...
黑科技辅助挂(wEpoke)黑... 黑科技辅助挂(wEpoke)黑科技透明挂辅助安装(透视)存在挂教程(原来真的是有挂);1、让任何用户...
黑科技数据(fish poke... 黑科技数据(fish poker)外挂辅助app(透视)揭秘攻略(果然有挂);1、实时fish po...
黑科技app(微扑克wpk)外... 黑科技app(微扑克wpk)外挂透视辅助器(透视)科技教程(真是是有挂)1、微扑克wpkai机器人多...
黑科技有挂(aApoker)外... 黑科技有挂(aApoker)外挂透视辅助技巧(透视)可靠教程(一直有挂);1、点击下载安装,aApo...
黑科技模拟器(Wpk)外挂透视... 黑科技模拟器(Wpk)外挂透视辅助技巧(透视)扑克教程(好像存在有挂);Wpk辅助器中分为三种模型:...
黑科技好牌(aapOker)外... 黑科技好牌(aapOker)外挂透视辅助安装(透视)辅助教程(果然是有挂)在进入aapOker辅助挂...