Rumah >pembangunan bahagian belakang >Golang >Adakah Go Menggunakan Antara Muka Kosong atau Parameter Jenis untuk Fungsi Generik?

Adakah Go Menggunakan Antara Muka Kosong atau Parameter Jenis untuk Fungsi Generik?

Linda Hamilton
Linda Hamiltonasal
2025-01-01 01:21:10486semak imbas

Does Go Use Empty Interfaces or Type Parameters for Generic Functions?

Fungsi Generik dalam Go

Dalam Go, konsep fungsi generik menemui pelaksanaannya melalui penggunaan antara muka kosong. Antara muka kosong, kerana tidak memerlukan sebarang pelaksanaan kaedah tambahan, mempunyai keupayaan untuk memegang sebarang jenis nilai. Ini membawa kepada persoalan sama ada ini berfungsi sebagai pendekatan Go kepada pelaksanaan fungsi generik atau jika wujud alternatif yang lebih sesuai.

Setakat Go 1.18, kaedah yang lebih moden dan eksplisit untuk mentakrifkan fungsi generik telah diperkenalkan. Ia memanfaatkan parameter jenis untuk menentukan jenis yang fungsi itu boleh beroperasi. Sebagai contoh, pertimbangkan fungsi generik berikut Cetak:

package main

import (
    "fmt"
)

// T can be any type
func Print[T any](s []T) {
    for _, v := range s {
        fmt.Print(v)
    }
}

func main() {
    // Passing list of string works
    Print([]string{"Hello, ", "world\n"})

    // You can pass a list of int to the same function as well
    Print([]int{1, 2})
}

Output:

Hello, world
12

Kaedah ini menyediakan pengisytiharan fungsi generik yang lebih bersih dan lebih jelas, menjadikannya lebih mudah untuk difahami dan diselenggara pangkalan kod.

Atas ialah kandungan terperinci Adakah Go Menggunakan Antara Muka Kosong atau Parameter Jenis untuk Fungsi Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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