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 }
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!