首頁  >  文章  >  後端開發  >  如何使用 Golang 泛型建立自訂類型?

如何使用 Golang 泛型建立自訂類型?

WBOY
WBOY原創
2024-06-02 10:45:59611瀏覽

如何使用 Golang 泛型创建自定义类型?

使用Golang 泛型建立自訂類型

Golang 1.18 引入了泛型,這是一種建立類型化參數化程式碼的方法,有助於創建高度可重複使用和可維護的程式碼。它使我們可以定義帶有類型佔位符的類型,這些類型可以在建立類型實例時被替換為特定類型。

定義自訂類型

要建立自訂類型,可以使用 type 關鍵字,後面跟著類型名稱和類型參數。類型參數用尖括號 a8093152e673feb7aba1828c43532094 括起來。例如,我們可以建立名為Pair 的類型,它儲存任意類型的一對值:

type Pair[T1, T2 any] struct {
    first  T1
    second T2
}

其中:

  • T1T2 是型別參數,表示可以由任何型別取代。
  • struct 定義了一個包含兩個欄位 firstsecond 的結構體。

建立類型實例

一旦定義了自訂類型,就可以透過指定類型參數來建立它的實例。例如,要建立一個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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn