Bagaimana untuk Menentukan Set Kaedah Antara Muka dalam Go?

Barbara Streisand
Lepaskan: 2024-11-01 17:05:51
asal
803 orang telah melayarinya

How to Determine the Method Set of an Interface in Go?

Menentukan Set Kaedah Antara Muka dalam Go

Apabila bekerja dengan antara muka dalam Go, adalah berguna untuk memeriksa set kaedah yang ditakrifkan oleh antara muka. Maklumat ini boleh menjadi tidak ternilai untuk tugas seperti pengesahan, penjanaan kod atau sekadar memahami maksud antara muka.

Mendapatkan Set Kaedah Menggunakan Refleksi

Bahasa Go menyediakan pakej refleksi yang berkuasa yang membolehkan anda memeriksa perwakilan masa jalan bagi pembolehubah, termasuk jenis. Untuk mendapatkan semula set kaedah antara muka, kita boleh menggunakan langkah berikut:

  1. Dapatkan maklumat jenis antara muka menggunakan reflect.TypeOf().
  2. Gunakan NumMethod() kaedah pada jenis untuk mendapatkan bilangan kaedah yang ditakrifkan oleh antara muka.
  3. Lelaran melalui kaedah menggunakan kaedah Kaedah() pada jenis, mendapatkan nama kaedah.

Ini coretan kod yang menunjukkan langkah berikut:

<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

Menjalankan program ini akan mengeluarkan nama kaedah yang ditakrifkan oleh antara muka Pencari:

Search
ListSearches
ClearSearches
Salin selepas log masuk

Teknik ini membolehkan anda menentukan kaedah set antara muka tanpa mengetahui jenis konkrit yang melaksanakannya.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Set Kaedah Antara Muka dalam Go?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!