泛型的使用
泛型允许我们编写非常灵活且可重用的代码,避免代码重复。在像 Swift 这样的类型安全语言中,我们经常需要编写适用于多种类型的函数或类型。
泛型函数
在没有泛型的情况下,如果我们需要编写交换两个变量值的函数,对于不同类型(如 Int
、 Double
、 String
),我们需要分别编写不同的函数:
func swapInts (inout a: Int, inout b: Int) {
let tmp = a
a = b
b = tmp
}
func swapDoubles(inout a: Double, inout b: Double) {
let tmp = a
a = b
b = tmp
}
func swapStrings(inout a: String, inout b: String) {
let tmp = a
a = b
b = tmp
}
随着应用的发展,可能需要交换更多类型的变量,这样会产生大量重复代码。而使用泛型,我们可以将这些函数合并为一个通用的函数:
func swap<T>(inout a: T, inout b: T) {
let tmp = a
a = b
b = tmp
}
在定义泛型函数时,我们在函数名后面的尖括号中包含