Maison > développement back-end > Golang > Comment imprimer l'ensemble de méthodes d'une interface en Go ?

Comment imprimer l'ensemble de méthodes d'une interface en Go ?

Barbara Streisand
Libérer: 2024-11-02 16:44:02
original
1062 Les gens l'ont consulté

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

Comment imprimer l'ensemble de méthodes d'une interface dans Golang

Obtenir l'ensemble de méthodes d'une interface dans Go peut être obtenu par réflexion. Cette technique vous permet d'inspecter et d'interroger les informations de type des variables sans connaître leur type spécifique au moment de la compilation.

Solution :

À l'aide du package Reflect, vous pouvez accéder les informations de type et les méthodes d’une interface. Voici un extrait de code montrant comment récupérer les noms de fonctions d'une interface :

<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

Ce code affichera le résultat suivant :

Search
ListSearches
ClearSearches
Copier après la connexion

La fonction reflex.TypeOf() obtient le tapez les informations de la structure anonyme qui intègre l’interface. Ensuite, t.NumMethod() fournit le nombre de méthodes définies par l'interface, et nous les parcourons en utilisant t.Method(i).Name pour obtenir les noms de méthodes.

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