Go 語言中的函數泛型
#泛型函數可讓您為各種類型定義通用函數,從而提高程式碼的可重複使用性和靈活性。
語法
泛型函數的語法如下:
func <函数名>[T any](<参数列表>) <返回值类型> { // 函数体 }
其中:
是泛型函數的名稱。 <t any></t>
表示函數接受的型別參數,any
關鍵字指示型別未知。
是函數所需的參數。
是函數傳回的型別。 實戰案例
我們建立一個比較兩個值並傳回較大值的泛型函數:
func Max[T comparable](a, b T) T { if a > b { return a } return b }
我們可以使用此函數比較任何可比較類型的兩個值:
maxInt := Max(10, 20) // int maxString := Max("hello", "world") // string
約束
#您可以使用類型限制來限制函數可以接受的類型。例如,您可以要求類型必須可比較或實作特定介面:
func MaxComparable[T comparable](a, b T) T func MaxWithInterface[T any](a, b T) T where T interface{ CompareTo(T) int }
注意
結論
Go 語言中的函數泛型提供了強大的工具,可用來編寫通用且可重複使用的程式碼。透過使用類型參數和類型約束,您可以建立適應多種情況的函數。
以上是golang函數的泛型的詳細內容。更多資訊請關注PHP中文網其他相關文章!