Swift编程:泛型扩展、通用类型与集合类型详解
1. 泛型扩展
在Swift中,当扩展泛型类型时,占位符类型名称在扩展声明中是可见的。这既有利也有弊,好处是可能会用到这些占位符类型,但也可能让代码变得有些难以理解,因为感觉像是突然使用了一个未定义的类型名称。此时添加注释来提醒自己代码的意图是个不错的做法。
1.1 泛型类扩展示例
class Dog<T> {
var name : T?
}
extension Dog {
func sayYourName() -> T? { // T? is the type of self.name
return self.name
}
}
在这个例子中, Dog 是一个泛型类, T 是占位符类型。扩展 Dog 类后, sayYourName 方法可以使用 T? 类型,它与 self.name 的类型一致。
1.2 带 where 子句的泛型扩展
泛型类型扩展声明可以包含 where 子句,它类似于泛型约束,限制了哪些泛型解析器可以调用扩展注入的代码,并向编译器保证代码对于这些解析器是合法的。
func myMin<T:C
超级会员免费看
订阅专栏 解锁全文
85

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



