Menyenaraikan Nama Kaedah dalam Jenis Antara Muka Menggunakan Refleksi Masa Jalan
Dalam Go, antara muka mentakrifkan kontrak untuk tandatangan kaedah. Walau bagaimanapun, mendapatkan nama kaedah dalam antara muka pada masa jalan boleh mencabar. Artikel ini menangani isu ini, meneroka kaedah untuk menyenaraikan nama kaedah menggunakan refleksi.
Masalah:
Pertimbangkan jenis antara muka berikut:
<code class="go">type FooService interface { Foo1(x int) int Foo2(x string) string }</code>
Objektifnya ialah untuk mendapatkan senarai nama kaedah seperti ["Foo1", "Foo2"] secara dinamik menggunakan pantulan masa jalan.
Penyelesaian:
Untuk mendapatkan semula nama kaedah, kita boleh menggunakan langkah berikut:
Berikut ialah pelaksanaan kod:
<code class="go">t := reflect.TypeOf((*FooService)(nil)).Elem() var s []string for i := 0; i < t.NumMethod(); i++ { s = append(s, t.Method(i).Name) }</code>
Dengan menggunakan penyelesaian yang disediakan, anda boleh menjana senarai nama kaedah secara dinamik untuk mana-mana jenis antara muka yang diberikan dalam Go anda program.
Atas ialah kandungan terperinci Bagaimana untuk Menyenaraikan Nama Kaedah dalam Jenis Antara Muka Go Menggunakan Refleksi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!