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
Libérer: 2024-12-18 00:45:10
original
994 Les gens l'ont consulté

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

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!

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