在Swift中,泛型可以通過類型參數和協議來實現對多種數據類型的處理。以下是一些示例:
func printGenericData<T>(_ data: T) {
print(data)
}
printGenericData(42) // 輸出: 42
printGenericData("Hello, world!") // 輸出: Hello, world!
在這個例子中,我們定義了一個名為printGenericData
的泛型函數,它接受一個類型為T
的參數。我們可以使用任何數據類型調用此函數,包括整數、字符串等。
protocol Printable {
func print()
}
extension Int: Printable {}
extension String: Printable {}
func printPrintableData<T: Printable>(_ data: T) {
data.print()
}
printPrintableData(42) // 輸出: 42
printPrintableData("Hello, world!") // 輸出: Hello, world!
在這個例子中,我們定義了一個名為Printable
的協議,它要求實現print()
方法。然后,我們為Int
和String
類型擴展了Printable
協議。接下來,我們定義了一個名為printPrintableData
的泛型函數,它接受一個類型為T
的參數,其中T
必須實現Printable
協議。這樣,我們可以使用實現了Printable
協議的任何數據類型調用此函數。
通過這些方法,Swift泛型可以靈活地處理多種數據類型。