上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.2 关联类型
在协议里定义的关联类型也可以用泛型来处理。我们定义一个协议,如下所示。
protocol HTNState { associatedtype StateType func add(_ item: StateType) }
采用非泛型的实现,如下所示。
struct states: HTNState { typealias StateType = Int func add(_ item: Int) { //... } }
采用泛型遵循协议,如下所示。
struct states<T>: HTNState { func add(_ item: T) { //... } }
这样关联类型也能够享受泛型的好处了。