Aplikasi fungsi generik Golang

WBOY
Lepaskan: 2024-04-29 13:45:01
asal
764 orang telah melayarinya

Go 1.18 memperkenalkan fungsi generik, menyokong parameterisasi jenis dan meningkatkan kebolehgunaan semula kod. Sintaks fungsi generik ialah nama fungsi fungsi [parameter jenis] (parameter jenis parameter input) jenis parameter, dan jenis parameter jenis boleh digunakan sebagai jenis input dan pulangan. Contohnya, Min[T nombor] (a, b T) T, di mana T mestilah daripada jenis angka, a dan b ialah parameter input jenis T, dan nombor yang lebih kecil dikembalikan. Fungsi generik sangat meningkatkan kebolehgunaan semula kod, menjadikannya mungkin untuk menulis kod umum yang boleh digunakan untuk pelbagai jenis.

Aplikasi fungsi generik Golang

Aplikasi Fungsi Generik dalam Go

Diperkenalkan dalam Go 1.18 dan lebih baru, generik membenarkan fungsi menerima dan mengembalikan jenis berparameter jenis. Ini sangat meningkatkan kebolehgunaan semula dan fleksibiliti kod.

Syntax

Sintaks fungsi generik adalah seperti berikut:

func myFunc[T any](input T) T {
    // ...
}
Salin selepas log masuk

Di mana:

  • myFunc ialah nama fungsi. myFunc 是函数名称。
  • T any 是类型参数。它可以是任何类型,包括自定义类型。
  • input 是带有类型参数化类型的输入参数。
  • T 是带有类型参数化类型的返回类型。

实战案例

假设我们想创建一个函数来计算两个数字的最小值。泛型函数可以让我们用任何数字类型来表示这两个数字,而无需创建多个具有特定类型签名的函数。

我们可以编写如下泛型函数:

func Min[T number](a, b T) T {
    if a < b {
        return a
    }
    return b
}
Salin selepas log masuk

其中:

  • T number 表示类型参数 T 必须是 numeric 类型(例如 int、float64)。
  • ab 是输入参数,类型为 T。
  • if-else
  • T any ialah parameter jenis. Ia boleh daripada sebarang jenis, termasuk jenis tersuai.

input ialah parameter input dengan jenis berparameter jenis.

T ialah jenis pulangan dengan jenis berparameter jenis.

Kes Praktikal

🎜🎜 Katakan kita ingin mencipta fungsi untuk mengira minimum dua nombor. Fungsi generik membolehkan kami mewakili kedua-dua nombor ini dengan sebarang jenis nombor tanpa perlu mencipta berbilang fungsi dengan tandatangan jenis tertentu. 🎜🎜Kita boleh menulis fungsi generik berikut: 🎜
var a int8 = 10
var b int16 = 20
min := Min(a, b)  // 类型推断为 int16
fmt.Println(min)  // 输出:10
Salin selepas log masuk
🎜di mana: 🎜🎜🎜nombor T bermakna parameter jenis T mestilah daripada jenis angka (seperti int, float64). 🎜🎜a dan b ialah parameter input dengan jenis T. 🎜🎜 if-else pernyataan membandingkan dua nombor dan mengembalikan nombor yang lebih kecil. 🎜🎜🎜Kita boleh menggunakan fungsi ini untuk mengira nilai minimum bagi jenis nombor yang berbeza: 🎜rrreee🎜🎜Kesimpulan🎜🎜🎜Go generik meningkatkan kebolehgunaan semula dan fleksibiliti kod anda dengan membenarkan fungsi menerima dan mengembalikan jenis yang ditaip . Dengan menggunakan fungsi generik, kita boleh menulis kod generik yang berfungsi merentas pelbagai jenis. 🎜

Atas ialah kandungan terperinci Aplikasi fungsi 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