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!