Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mendapatkan Set Kaedah Antara Muka di Golang?

Bagaimana untuk Mendapatkan Set Kaedah Antara Muka di Golang?

Barbara Streisand
Barbara Streisandasal
2024-11-02 03:31:03997semak imbas

How to Retrieve the Method Set of an Interface in Golang?

Cara Mendapatkan Set Kaedah Antara Muka di Golang

Menentukan set kaedah antara muka di Golang membantu anda mendapatkan senarai semua kaedah yang dikuatkuasakan oleh antara muka tertentu. Untuk mencapai matlamat ini, kami menggunakan pakej pantulan.

Pengeluaran Set Kaedah Menggunakan Refleksi

Tanpa pengetahuan awal tentang jenis konkrit pelaksana, anda boleh menggunakan coretan kod berikut untuk cetak set kaedah:

<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>

Menggunakan pantulan, kami memperoleh pantulan.Jenis struct tanpa nama yang mematuhi antara muka. Fungsi NumMethod() mendapatkan semula jumlah kaedah yang ditakrifkan oleh antara muka dan gelung berulang melalui setiap kaedah, mencetak namanya.

Menjalankan coretan kod akan menghasilkan output berikut:

Search
ListSearches
ClearSearches

Teknik pengekstrakan set kaedah ini terbukti berguna apabila anda perlu bekerja dengan antara muka secara dinamik tanpa pengetahuan tentang jenis pelaksana.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Set Kaedah Antara Muka di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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