swift 关联类型

关联类型

定义一个协议时,声明一个或多个关联类型作为协议定义的一部分将会非常有用。关联类型为协议中的某个类型提供了一个占位符名称,其代表的实际类型在协议被遵循时才会被指定。关联类型通过 associatedtype 关键字来指定。关联类型只能在协议中定义。

关联类型实践

在协议中使用associatedtype来定义一个关联类型,在遵守协议的类中使用typealias指定关联类型,如下图:

import UIKit
protocol HelloProtocol {
/****
定义一个关联类型
/
associatedtype value
/****
定义一个使用方法
/
mutating func logValue(v: value)
}
class HelloClass: HelloProtocol {
/

指定关联类型是哪种类型,这里指定的是Int
/
typealias value = Int
/

实现协议中的方法
/
func logValue(v: Int) {
/

这里打印的类型是Int类型2
/
print(v)
}
}
let hC = HelloClass()
hC.logValue(v: 2)
class NextClass: HelloProtocol {
/
*
指定关联类型是哪种类型,这里指定的是Int
/
typealias value = String
/
*
实现协议中的方法
/
func logValue(v: String) {
/
*
这里打印的类型是String类型NextClass
*/
print(v)
}
}
let hN = NextClass()
hN.logValue(v: "NextClass")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容