Bagaimana untuk membuat jenis tersuai menggunakan generik Golang?

WBOY
Lepaskan: 2024-06-02 10:45:59
asal
608 orang telah melayarinya

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

Buat jenis tersuai menggunakan generik Golang

Golang 1.18 memperkenalkan generik, satu cara untuk mencipta kod berparameter ditaip yang membantu mencipta kod yang sangat boleh digunakan semula dan boleh diselenggara. Ia membolehkan kami mentakrifkan jenis dengan ruang letak jenis yang boleh digantikan dengan jenis tertentu apabila membuat tika jenis tersebut.

Tentukan jenis tersuai

Untuk membuat jenis tersuai, anda boleh menggunakan kata kunci type, diikuti dengan nama jenis dan parameter jenis. Parameter jenis disertakan dalam kurungan sudut <>. Sebagai contoh, kita boleh mencipta jenis yang dipanggil Pair yang menyimpan sepasang nilai ​​dari sebarang jenis: type 关键字,后跟类型名称和类型参数。类型参数用尖括号 <> 括起来。例如,我们可以创建名为 Pair 的类型,它存储任意类型的一对值:

type Pair[T1, T2 any] struct {
    first  T1
    second T2
}
Salin selepas log masuk

其中:

  • T1T2 是类型参数,表示可以由任何类型替换。
  • struct 定义了一个包含两个字段 firstsecond 的结构体。

创建类型实例

一旦定义了自定义类型,就可以通过指定类型参数来创建它的实例。例如,要创建一个 Pair 实例来存储字符串和整数,我们可以使用以下代码:

pair := Pair[string, int]{"John", 30}
Salin selepas log masuk

实战案例

泛型在 Golang 中有许多实际应用。一个常见案例是创建泛型函数或方法,可以在各种类型上操作。例如,我们可以创建一个 Swap 函数,它可以在两种不同的类型上交换值:

func Swap[T1, T2 any](a *T1, b *T2) {
    temp := *a
    *a = *b
    *b = temp
}
Salin selepas log masuk

要使用此函数,我们可以传递两种不同类型的指针作为参数:

a := 5
b := "Hello"
Swap(&a, &b)
fmt.Println(a, b) // 输出:"Hello" 5
Salin selepas log masuk

注意事项

  • 类型参数必须使用 anyrrreee
  • di mana:
    • T1 dan T2 ialah parameter jenis, menunjukkan bahawa ia boleh digantikan dengan mana-mana jenis.
    • struct mentakrifkan struktur yang mengandungi dua medan: first dan second.
    🎜🎜Mencipta Contoh Jenis🎜🎜Setelah jenis tersuai ditakrifkan, tika itu boleh dibuat dengan menentukan parameter jenis. Contohnya, untuk mencipta contoh Pair untuk menyimpan rentetan dan integer, kita boleh menggunakan kod berikut: 🎜rrreee🎜Contoh Praktikal🎜🎜Generik mempunyai banyak aplikasi praktikal di Golang. Kes biasa ialah mencipta fungsi atau kaedah generik yang boleh beroperasi pada pelbagai jenis. Sebagai contoh, kita boleh mencipta fungsi Swap yang menukar nilai pada dua jenis berbeza: 🎜rrreee🎜Untuk menggunakan fungsi ini, kita boleh menghantar penunjuk dua jenis berbeza sebagai argumen: 🎜rrreee 🎜Nota🎜
      🎜Parameter jenis mesti menggunakan kata kunci mana-mana, yang menunjukkan bahawa parameter boleh daripada sebarang jenis. 🎜🎜Parameter jenis tidak boleh menjadi alias taip atau antara muka. 🎜🎜Parameter jenis tidak boleh mempunyai kekangan jenis. 🎜🎜

    Atas ialah kandungan terperinci Bagaimana untuk membuat jenis tersuai menggunakan generik Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:php.cn
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!