Maison >développement back-end >Golang >Comment puis-je répertorier tous les types exportés dans un package Go ?

Comment puis-je répertorier tous les types exportés dans un package Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-18 00:45:101060parcourir

How Can I List All Exported Types Within a Go Package?

Comment répertorier tous les types exportés dans un package

Dans Go, les types au niveau du package peuvent être exportés en mettant leur première lettre en majuscule. Cela permet à d’autres packages d’accéder à ces types. Cependant, il n'existe pas de fonction intégrée pour répertorier directement tous les types exportés dans un package.

Une façon d'obtenir ces informations consiste à utiliser le package go/importer. Voici comment :

package main

import (
    "fmt"
    "go/importer"
    "go/pkg"
)

func main() {
    // Import the package you want to inspect
    pkg, err := importer.Default().Import("demo")
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    // Iterate over the scopes and print the exported type names
    for _, declName := range pkg.Scope().Names() {
        fmt.Println(declName)
    }
}

La méthode importer.Default().Import() prend le chemin du package comme argument et renvoie un objet package représentant des informations sur le package. La méthode pkg.Scope() renvoie la portée du package, qui contient tous les types, fonctions et variables exportés et non exportés.

Remarque : Cette approche peut ne pas fonctionner dans Go Playground en raison aux limitations de l'environnement.

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!

Déclaration:
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