Bagaimana Mengimbas dan Memanipulasi Struktur Secara Dinamik Melaksanakan Antara Muka Khusus di Golang?

Barbara Streisand
Lepaskan: 2024-10-30 10:29:02
asal
984 orang telah melayarinya

 How to Dynamically Scan and Manipulate Structures Implementing a Specific Interface in Golang?

Golang: Mengimbas Struktur dengan Pelaksanaan Khusus

Dalam Go, memanipulasi berbilang struktur dengan antara muka dikongsi boleh menimbulkan cabaran. Walaupun mungkin untuk mengendalikan setiap contoh struktur secara individu, anda mungkin menghadapi keperluan untuk mencari dan memanipulasi semua struktur secara automatik yang mematuhi antara muka tertentu.

Masalahnya

Senario melibatkan pelaksanaan antara muka I oleh pelbagai struktur (A, B, dan C). Semasa aplikasi dimulakan, anda perlu menggunakan kaedah mula() untuk setiap contoh A, B dan C. Begitu juga, selepas penamatan, anda perlu memanggil kaedah stop() pada keadaan ini. Walau bagaimanapun, anda ingin mengelakkan pengekodan keras struktur khusus ini dalam kod anda, membenarkan pengubahsuaian yang lancar apabila struktur baharu yang melaksanakan antara muka I diperkenalkan.

Jawapannya

Malangnya, dalam Go, pendekatan yang anda bayangkan tidak dapat dilaksanakan. Go ialah bahasa yang ditaip secara statik, dan pemaut menghapuskan definisi dan kaedah jenis yang tidak digunakan. Oleh itu, jenis yang tidak dirujuk secara eksplisit dalam kod anda akan ditinggalkan.

Penyelesaian Alternatif

Pendekatan alternatif ialah mencipta peta global (atau kepingan) yang menyimpan contoh setiap struktur yang melaksanakan antara muka I. Kejadian ini boleh didaftarkan semasa pemulaan menggunakan fungsi init:

<code class="go">var instMap = map[string]StartStopper

type A struct {}

func init() {
    instMap["A"] = new(A)
}</code>
Salin selepas log masuk

Semasa permulaan, anda boleh lelaran di atas peta dan memanggil kaedah Mula() pada setiap tika.

Mengendalikan Berbilang Kejadian

Jika terdapat berbilang tika bagi setiap jenis struktur, anda perlu mengubah suai proses pendaftaran anda untuk menambah tika pada peta apabila ia dibuat. Anda juga harus mengalih keluar kejadian apabila ia tidak lagi digunakan untuk mengelakkan kemungkinan kebocoran memori.

Atas ialah kandungan terperinci Bagaimana Mengimbas dan Memanipulasi Struktur Secara Dinamik Melaksanakan Antara Muka Khusus di Golang?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!