Maison >développement back-end >Golang >Comment récupérer toutes les structures d'un package Go ?

Comment récupérer toutes les structures d'un package Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 01:51:02561parcourir

How to Retrieve All Structs within a Go Package?

Récupération de toutes les structures au sein d'un package Go

Dans Go, il est possible d'énumérer toutes les structures définies dans un package spécifique. Pour ce faire, la solution la plus efficace consiste à analyser les fichiers sources Go, à extraire l'arbre de syntaxe abstraite (AST) et à isoler les instances ast.StructType.

La commande hg peut être utilisée pour cloner les sources Go :

hg clone https://code.google.com/p/go/

Par la suite, vous pouvez isoler les instances ast.StructType en analysant les fichiers sources. Voici un exemple fourni par linter go/lint qui montre comment extraire les noms de champs de structure :

    case *ast.StructType:
        for _, f := range v.Fields.List {
            for _, id := range f.Names {
                check(id, "struct field")
            }
        }

En analysant l'AST et en extrayant les instances ast.StructType, vous pouvez obtenir une liste de toutes les structures qu'il contient. le package spécifié.

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