Accès aux types exportés dans les packages
Dans Go, les types exportés sont accessibles par d'autres packages. Cela permet la réutilisation et la modularité dans la conception du code. Cependant, comment accéder à tous les types exportés définis à partir d'un package spécifique ?
Considérons l'exemple suivant :
package demo type People struct { Name string Age uint } type UserInfo struct { Address string Hobby []string NickNage string }
Dans un package séparé, disons,
import "demo"
À partir de cet autre package, nous cherchons à récupérer tous les types exportés définis dans le package de démonstration. Pour y parvenir, nous pouvons exploiter le package go/importer :
package main import ( "fmt" "golang.org/x/tools/go/importer" ) func main() { pkg, err := importer.Default().Import("demo") if err != nil { fmt.Println("error:", err) return } for _, declName := range pkg.Scope().Names() { fmt.Println(declName) } }
Ce code importe le package de démonstration à l'aide de l'importateur et parcourt les noms définis dans sa portée. La sortie résultante répertoriera tous les types exportés, dans ce cas :
People UserInfo
Cependant, il convient de noter que l'utilisation de cette approche peut entraîner une erreur sur Go Playground.
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!