Swift 泛型是一種強大的編程特性,它允許你編寫可重用的、類型安全的代碼。通過使用泛型,你可以編寫一個函數(shù)或類,它可以處理多種數(shù)據(jù)類型,而不需要為每種數(shù)據(jù)類型編寫單獨的代碼。這有助于提高代碼復(fù)用,使你的代碼更簡潔、易于維護。
以下是一些使用泛型來提高代碼復(fù)用的方法:
泛型函數(shù)允許你編寫一個函數(shù),它可以處理多種數(shù)據(jù)類型。泛型函數(shù)使用類型占位符(type placeholder)表示類型,這樣你可以在調(diào)用函數(shù)時指定具體的類型。例如:
func printArray<T>(array: [T]) {
for element in array {
print(element)
}
}
printArray(array: [1, 2, 3]) // 輸出整數(shù)數(shù)組
printArray(array: ["apple", "banana", "cherry"]) // 輸出字符串?dāng)?shù)組
泛型類允許你創(chuàng)建一個類,它可以處理多種數(shù)據(jù)類型。泛型類使用類型占位符表示類型,這樣你可以在實例化類時指定具體的類型。例如:
class Box<T> {
var value: T
init(_ value: T) {
self.value = value
}
}
let intBox = Box(42)
let stringBox = Box("Hello, world!")
泛型約束允許你限制泛型類型必須滿足某些條件,例如遵循某個協(xié)議或具有某個屬性。這有助于確保泛型代碼的正確性和安全性。例如:
protocolprintable {
func print()
}
func printItem<T: printable>(item: T) {
item.print()
}
class MyInt: Printable {
var value: Int
init(_ value: Int) {
self.value = value
}
func print() {
print(value)
}
}
class MyString: Printable {
var value: String
init(_ value: String) {
self.value = value
}
func print() {
print(value)
}
}
printItem(item: MyInt(42)) // 輸出 42
printItem(item: MyString("Hello, world!")) // 輸出 Hello, world!
通過使用泛型、泛型函數(shù)和泛型類,你可以編寫更靈活、可重用的代碼,從而提高代碼質(zhì)量和開發(fā)效率。