Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menemui Contoh Secara Dinamik Melaksanakan Antara Muka Go pada Masa Jalan?
Golang: Menemui Contoh Melaksanakan Antara Muka
Di Golang, selalunya wajar untuk melaksanakan operasi pada contoh jenis tertentu atau yang melaksanakan antara muka tertentu. Walau bagaimanapun, penaipan bahasa yang ketat memberikan cabaran dalam mengenal pasti semua keadaan yang memenuhi kriteria tertentu semasa masa jalan.
Tinjauan Keseluruhan Masalah
Pertimbangkan kes penggunaan berikut:
Perbincangan Penyelesaian
Sistem jenis Golang tidak membenarkan pengambilan masa jalan semua jenis yang melaksanakan antara muka. Ini kerana Go ditaip secara statik, dan pengkompil menghapuskan jenis dan kaedah yang tidak digunakan untuk mengoptimumkan binari yang terhasil.
Pendekatan Alternatif
Penyelesaian alternatif adalah untuk mengekalkan global peta atau kepingan yang mengaitkan pengecam dengan keadaan yang melaksanakan antara muka. Setiap struct boleh memulakan dirinya sendiri dengan menambahkan contoh pada koleksi global ini.
Contohnya:
<code class="go">var instMap = map[string]StartStopper type A struct {} func init() { instMap["A"] = new(A) }</code>
Semasa permulaan dan penamatan, program boleh berulang ke atas koleksi global dan menggunakan kaedah yang sesuai pada setiap tika.
Sambungan untuk Berbilang Kejadian
Jika berbilang tika setiap jenis boleh wujud, koleksi global mesti dikemas kini apabila tika baharu dibuat dan dialih keluar apabila ia tidak lagi digunakan. Ini memastikan pengendalian yang betul oleh pemungut sampah.
Atas ialah kandungan terperinci Bagaimana untuk Menemui Contoh Secara Dinamik Melaksanakan Antara Muka Go pada Masa Jalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!