Maison > développement back-end > Golang > Comment puis-je accéder à tous les types exportés à partir d'un package Go spécifique ?

Comment puis-je accéder à tous les types exportés à partir d'un package Go spécifique ?

Mary-Kate Olsen
Libérer: 2024-12-13 11:18:15
original
523 Les gens l'ont consulté

How Can I Access All Exported Types from a Specific Go Package?

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

Dans un package séparé, disons,

import "demo"
Copier après la connexion

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

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

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!

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