Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapatkan Contoh `reflect.Type` Struct Tanpa Membuat Contoh?
Mendapat Reflect.Type Instance Struct Tanpa Mencipta Struct
Persoalan timbul daripada keperluan untuk mengakses jenis struct tanpa mencipta contoh sebenar struct, terutamanya untuk pemuatan dinamik penyelesaian masalah. Penyelesaian sedia ada memerlukan penciptaan dan pensifaran struct sebelum mendaftarkan jenisnya.
Jawapannya terletak pada penggunaan kaedah reflect.TypeOf((*DummySolution)(nil)).Elem(). Di sini, kami mencipta penunjuk nil kepada struct tanpa memperuntukkan memori. Kaedah Elem mengambil penuding dan mengekstrak jenis elemennya, dengan berkesan memberikan kami maklumat jenis struct.
Begini cara anda boleh mengubah suai kod yang disediakan dalam soalan:
<code class="go">func Register(sol Solution) { solutionsRegistry.Set(reflect.TypeOf((*sol)(nil)).Elem()) }</code>
Dengan membuat perubahan ini, anda boleh mendaftarkan jenis DummySolution dan struct Penyelesaian lain tanpa membuat kejadian, mengelakkan overhed peruntukan memori dan memudahkan proses pemula.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Contoh `reflect.Type` Struct Tanpa Membuat Contoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!