Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Generik Mendayakan Fungsi Generik Benar dalam Go?

Bagaimanakah Generik Mendayakan Fungsi Generik Benar dalam Go?

DDD
Lepaskan: 2024-12-18 15:08:13
asal
403 orang telah melayarinya

How Do Generics Enable True Generic Functions in Go?

Fungsi Generik dalam Go

Jenis antara muka dalam Go boleh menyimpan sebarang jenis tanpa memerlukan sebarang kaedah yang dilaksanakan, mewujudkan tanggapan bahawa ia berfungsi sebagai bentuk fungsi generik. Walau bagaimanapun, ini tidak berlaku. Fungsi generik sebenar, yang jenisnya tidak diketahui pada masa penyusunan, tidak disokong dalam Go sebelum versi 1.18.

Dalam Go 1.18, generik telah diperkenalkan, membolehkan penciptaan fungsi generik. Fungsi generik boleh ditakrifkan menggunakan kata kunci func diikuti oleh parameter jenis yang disertakan dalam kurungan segi empat sama. Parameter jenis menentukan jenis yang diterima oleh fungsi generik. Contohnya:

func Print[T any](s []T) {
    for _, v := range s {
        fmt.Print(v)
    }
}
Salin selepas log masuk

Dalam contoh ini, T ialah parameter jenis yang boleh mewakili sebarang jenis. Fungsi Print menerima hirisan jenis []T dan mencetak elemen hirisan.

Untuk menggunakan fungsi generik, anda boleh menghantar hirisan jenis yang diingini sebagai hujah:

// Passing a list of strings
Print([]string{"Hello, ", "world\n"})

// Passing a list of integers
Print([]int{1, 2})
Salin selepas log masuk

Output program ialah:

Hello, world
12
Salin selepas log masuk

Fungsi generik menyediakan cara ringkas dan selamat untuk menulis kod yang boleh beroperasi pada jenis yang berbeza tanpa mengorbankan keselamatan jenis.

Atas ialah kandungan terperinci Bagaimanakah Generik Mendayakan Fungsi Generik Benar dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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