高级 Swift 编程技巧与实践
1. 实现泛型类
在开发应用程序时,我们常常会遇到一些代码在多个地方被使用,但又无法将其重构为超类或类扩展的情况。这时,我们希望创建一个可重用的类,使其能适用于多种类型。
解决办法是创建一个泛型类,将与类型无关的功能封装起来。这样既能实现代码复用,又能保证类型安全。
泛型类允许开发者创建在编译时应用的类“模板”。在代码中,可能有一些通用函数可以用于任意数量的类型。最常见的泛型类示例就是数组和字典。由于集合类需要能够容纳任意数量的项,并且要具有灵活性,所以它们使用泛型类来提供这种功能,同时保持严格的类型。
定义泛型类时,在类名定义后,使用尖括号“<>”提供一个类型占位符列表。这个占位符列表将在整个类中用于表示创建类的具体实例时所提供的类型。例如, LIFOStack 类需要一个占位符,这个占位符表示可以存储在栈中的对象类型, LIFOStack 实现了后进先出(Last In, First Out)栈:
class LIFOStack<T>
泛型类的实现与其他类类似。但在定义变量和参数时,使用占位符来表示泛型类型。在编译时,编译器会将泛型类和指定的类型合并,创建一个具体的类型。例如,下面这行代码初始化一个用于存储的内部变量:
items = [T]()
这是因为 Array 类是一个泛
超级会员免费看
订阅专栏 解锁全文
12

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



