Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Generik dalam Go Boleh Mengendalikan Fungsi dengan Parameter Antara Muka Berasaskan Penunjuk?
Antara Muka Generik Penunjuk
Dalam Go, mentakrifkan antara muka untuk pelaksanaan penuding boleh dilakukan melalui generik. Pertimbangkan senario berikut:
Masalah:
Penyelesaian Menggunakan Antara Muka Generik dengan Parameter Jenis:
Untuk mencapai ini, anda boleh mengisytiharkan antara muka A dengan parameter jenis, memastikan bahawa jenis pelaksana adalah penunjuk kepada jenisnya parameter:
type A[P any] interface { SomeMethod() *P }
Kemudian, ubah suai tandatangan Pengendali seperti berikut:
func Handler[P any, T A[P]](callback func(result T)) { result := new(P) callback(result) }
Penyelesaian Menggunakan Antara Muka Pembungkus:
Jika anda tidak boleh ubah suai takrifan A, anda boleh membungkusnya ke dalam antara muka anda sendiri MyA:
type MyA[P any] interface { A *P }
Kemudian, kemas kini tandatangan Pengendali untuk menggunakan antara muka MyA:
func Handler[P any, T MyA[P]](callback func(result T)) { result := new(P) callback(result) }
Atas ialah kandungan terperinci Bagaimanakah Generik dalam Go Boleh Mengendalikan Fungsi dengan Parameter Antara Muka Berasaskan Penunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!