Soalan:
Di Golang, adakah mungkin untuk mengenal pasti semua secara pemrograman struct yang melaksanakan antara muka yang ditentukan? Ini akan membolehkan pemulaan automatik dan penamatan struct ini pada masa jalan, tanpa mengekodkan keras nama mereka dalam kod.
Jawapan:
Malangnya, jawapan ringkasnya ialah tidak.
Penjelasan:
Golang ialah bahasa yang ditaip ketat, yang bermaksud bahawa pemaut boleh menghapuskan definisi jenis, kaedah dan fungsi yang tidak digunakan oleh aplikasi. Oleh itu, melainkan jenis (seperti struct A) dirujuk dan digunakan di suatu tempat dalam kod, ia tidak akan disertakan dalam binari yang disusun.
Selain itu, walaupun mengakses contoh jenis sedia ada yang melaksanakan antara muka tertentu adalah tidak boleh dilaksanakan.
Pendekatan Alternatif:
Untuk mencapai kefungsian yang diingini, pendekatan alternatif ialah mencipta peta atau kepingan global yang menyimpan contoh struct yang melaksanakan antara muka. Setiap struct kemudiannya boleh menambah contoh pada peta ini menggunakan fungsi init yang dipanggil secara automatik pada permulaan aplikasi. Kemudian, apabila perlu, aplikasi boleh melelakan melalui peta dan menggunakan kaedah yang diingini pada kejadian.
Pendekatan ini membolehkan pendaftaran dinamik struktur dan menghapuskan keperluan untuk pengekodan keras nama mereka dalam kod. Walau bagaimanapun, jika terdapat berbilang kejadian jenis tertentu, mekanisme tambahan mesti dilaksanakan untuk mengurus pendaftaran dan nyahpendaftaran mereka.
Atas ialah kandungan terperinci Adakah Terdapat Cara untuk Mencari Semua Perlaksanaan Antara Muka Secara Pemrograman di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!