Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyelesaikan Ralat \'Kaedah Antara Muka Mesti Tiada Parameter Jenis\' dalam Go Generics?

Bagaimana untuk Menyelesaikan Ralat \'Kaedah Antara Muka Mesti Tiada Parameter Jenis\' dalam Go Generics?

Patricia Arquette
Lepaskan: 2024-11-29 14:33:10
asal
714 orang telah melayarinya

How to Resolve the

Bagaimana untuk Mengatasi Ralat "Kaedah Antara Muka Mesti Tiada Parameter Jenis" dalam Go Generik?

Apabila melaksanakan generik dalam Go, anda mungkin menghadapi ralat "kaedah antara muka mesti tidak mempunyai parameter jenis." Ralat ini timbul kerana, mengikut reka bentuk, parameter jenis tidak dibenarkan dalam kaedah antara muka. Keputusan reka bentuk ini dibuat untuk mengelakkan kekaburan dan implikasi prestasi yang timbul daripada pelbagai tafsiran kaedah dengan parameter jenis dalam definisi antara muka.

Untuk menangani isu ini, anda boleh menempatkan semula parameter jenis ke dalam definisi jenis antara muka. Pertimbangkan kod yang diubah suai ini:

type Reader[V Unmarshaler] interface {
    Read(bucket []byte, k ...[]byte) ([][]byte, error)
    ReadDoc(bucket []byte, factory func() (V, error), k ...[]byte) ([]V, error)
}

type Unmarshaler interface {
    UnmarshalKV(v []byte) error
}
Salin selepas log masuk

Dalam kod yang diubah suai ini, parameter jenis V dialihkan daripada tandatangan kaedah kepada definisi jenis antara muka itu sendiri. Ini secara berkesan membuat parameter antara muka dengan jenis V, membolehkan anda menentukan jenis konkrit apabila melaksanakan antara muka.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Kaedah Antara Muka Mesti Tiada Parameter Jenis\' dalam Go Generics?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan