Maison > développement back-end > Golang > Comment récupérer l'ensemble de méthodes d'une interface dans Golang ?

Comment récupérer l'ensemble de méthodes d'une interface dans Golang ?

Barbara Streisand
Libérer: 2024-11-02 03:31:03
original
1099 Les gens l'ont consulté

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

Comment récupérer l'ensemble de méthodes d'une interface dans Golang

Déterminer l'ensemble de méthodes d'une interface dans Golang vous aide à obtenir une liste de tous les méthodes appliquées par une interface spécifique. Pour y parvenir, nous utilisons le package Reflect.

Extraction d'ensemble de méthodes à l'aide de Reflection

Sans connaissance préalable du type concret d'implémentation, vous pouvez utiliser l'extrait de code suivant pour imprimer l'ensemble de méthodes :

<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>
Copier après la connexion

En utilisant la réflexion, nous obtenons le reflet.Type de la structure anonyme conforme à l'interface. La fonction NumMethod() récupère le nombre total de méthodes définies par l'interface, et la boucle parcourt chaque méthode, en imprimant son nom.

L'exécution de l'extrait de code produira le résultat suivant :

Search
ListSearches
ClearSearches
Copier après la connexion

Cette technique d'extraction d'ensemble de méthodes s'avère utile lorsque vous devez travailler avec des interfaces de manière dynamique sans connaître les types d'implémentation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal