Mendapatkan Senarai Nama Kaedah daripada Antara Muka
Dalam Go, refleksi membenarkan untuk memeriksa dan memanipulasi struktur dalaman program semasa masa jalan . Ini termasuk keupayaan untuk mengakses maklumat tentang jenis antara muka, seperti nama kaedahnya.
Pertimbangkan antara muka berikut:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
Untuk mendapatkan senarai nama kaedah untuk antara muka ini menggunakan refleksi:
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem()</code>
Barisan ini mendapatkan semula pantulan.Jenis untuk jenis konkrit yang melaksanakan antara muka FooService.
<code class="go">for i := 0; i < t.NumMethod(); i++ {</code>
Fungsi NumMethod() mengembalikan bilangan kaedah dalam antara muka.
<code class="go">s = append(s, t.Method(i).Name)</code>
Fungsi Kaedah(i) mengembalikan refleksi.Kaedah objek yang mewakili kaedah pada indeks i. Medan Nama objek ini mengandungi nama kaedah.
Senarai yang terhasil akan mengandungi nama kaedah ["Foo1", "Foo2"].
Penjelasan:
Atas ialah kandungan terperinci Bagaimanakah anda mendapatkan semula senarai nama kaedah daripada antara muka dalam Go menggunakan refleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!