协议中不支持该种方式的泛型,如果在协议中需要达到泛型这种类似的效果
我们可以使用associatedtype关键字
associatedtype:关联类型,定义一个协议时,有的时候声明一个或多个关联类型作为协议定义的一部分将会非常有用。关联类型为协议中的某个类型提供了一个占位名(或者说别名),其代表的实际类型在协议被采纳时才会被指定。你可以通过 associatedtype 关键字来指定关联类型。
示例代码(在使用协议时指定关联类型的具体类型):
//模型
class Animal {
var name: String?
var age : Int = 0
}
class Dog: Animal {
var color: String?
}
class Cat: Animal {
var action:String?
}
//定义一个协议
protocol AnimalProtocol {
//定义一个关联类型
associatedtype T;
func append(_ item: T)
}
class Person

本文介绍了在Swift中如何使用associatedtype在协议中实现类似泛型的功能,通过示例代码展示了如何定义和使用关联类型,以及如何为关联类型设置约束。同时,还探讨了将协议作为返回值的情况,并提供了相关规则的例子。
最低0.47元/天 解锁文章
419

被折叠的 条评论
为什么被折叠?



