泛型(Generics)是一种强大的特性,允许你编写灵活且可重用的代码,适用于多种类型,而无需重复编写代码。泛型在 Swift 中的应用非常广泛,适用于函数、结构体、枚举和类。通过本章的学习,你将掌握泛型的定义、应用场景,以及如何在项目中使用泛型来优化代码。
10.1 泛型基础
泛型允许你编写独立于类型的代码,以支持不同的数据类型。可以在函数、结构体和类中定义泛型,使其适用于任何符合条件的类型。
定义泛型函数
func swapValues<T>(a: inout T, b: inout T) {
let temp = a
a = b
b = temp
}
var x = 10
var y = 20
swapValues(a: &x, b: &y)
print("x: \(x), y: \(y)") // 输出:"x: 20, y: 10"
在上例中,swapValues 是一个泛型函数, 表示函数支持任何类型 T。T 可以是 Int、String 或任何其他类型。
10.2 泛型类型
Swift 允许你定义泛型结构体、类和枚举,使这些类型能够处理不同的数据类型。
泛型结构体示例
struct Pair<T, U> {
var first: T
var se