Mengakses Set Kaedah Antara Muka di Golang
Menentukan kaedah dalam antara muka boleh berguna untuk pelbagai senario. Artikel ini meneroka cara mencetak set kaedah antara muka dalam Golang dengan berkesan.
Cabaran
Memandangkan antara muka berikut:
<code class="go">type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) }</code>
Bagaimana bolehkah kita mencetak nama kaedah ini (Search, ListSearches dan ClearSearches) tanpa pengetahuan awal tentang jenis konkrit yang melaksanakan antara muka?
Penyelesaian
Pakej reflect menyediakan cara untuk memeriksa jenis semasa runtime. Dengan memanfaatkan pakej ini, kami boleh mendapatkan semula maklumat jenis antara muka kami dan memeriksa kaedahnya.
<code class="go">package main import ( "fmt" "reflect" ) type Searcher interface { Search(query string) (found bool, err error) ListSearches() []string ClearSearches() (err error) } func main() { t := reflect.TypeOf(struct{ Searcher }{}) for i := 0; i < t.NumMethod(); i++ { fmt.Println(t.Method(i).Name) } }</code>
Kod ini mencapai matlamat kami dengan mencerminkan jenis antara muka dan mengulangi kaedahnya untuk mencetak nama mereka.
Output
Menjalankan program ini akan menghasilkan output yang diingini:
Search ListSearches ClearSearches
Atas ialah kandungan terperinci Bagaimana untuk Mencetak Set Kaedah Antara Muka di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!