Golang 1.18 引入了泛型,這是一種建立類型化參數化程式碼的方法,有助於創建高度可重複使用和可維護的程式碼。它使我們可以定義帶有類型佔位符的類型,這些類型可以在建立類型實例時被替換為特定類型。
要建立自訂類型,可以使用 type
關鍵字,後面跟著類型名稱和類型參數。類型參數用尖括號 a8093152e673feb7aba1828c43532094 括起來。例如,我們可以建立名為Pair
的類型,它儲存任意類型的一對值:
type Pair[T1, T2 any] struct { first T1 second T2 }
其中:
T1
和T2
是型別參數,表示可以由任何型別取代。 struct
定義了一個包含兩個欄位 first
和 second
的結構體。 一旦定義了自訂類型,就可以透過指定類型參數來建立它的實例。例如,要建立一個Pair
實例來儲存字串和整數,我們可以使用以下程式碼:
pair := Pair[string, int]{"John", 30}
泛型在Golang 中有許多實際應用。一個常見案例是建立泛型函數或方法,可以在各種類型上操作。例如,我們可以建立一個Swap
函數,它可以在兩種不同的類型上交換值:
func Swap[T1, T2 any](a *T1, b *T2) { temp := *a *a = *b *b = temp }
要使用此函數,我們可以傳遞兩種不同類型的指標作為參數:
a := 5 b := "Hello" Swap(&a, &b) fmt.Println(a, b) // 输出:"Hello" 5
any
關鍵字,該關鍵字指示該參數可以是任何類型。 以上是如何使用 Golang 泛型建立自訂類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!