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

Bagaimana untuk Mendapatkan Set Kaedah Antara Muka di Golang?

Barbara Streisand
Lepaskan: 2024-11-02 03:31:03
asal
1100 orang telah melayarinya

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>
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan