Maison >développement back-end >Golang >Comment puis-je lister les méthodes publiques d'un package Go ?

Comment puis-je lister les méthodes publiques d'un package Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 11:08:14219parcourir

How Can I List the Public Methods of a Go Package?

Comment répertorier les méthodes publiques d'un package dans Go

Q : Comment répertorier toutes les méthodes publiques d'un package dans Go ?

A : Lister les méthodes publiques d'un package dans Go n'est pas directement possible en raison des optimisations de Go qui suppriment les fonctions inutilisées. Cependant, il existe des solutions potentielles en fonction de votre cas d'utilisation :

  1. Analyse statique :

    • Analyser le code source du package à l'aide de go/ analyseur pour obtenir toutes les déclarations de fonctions, mais notez que celles-ci ne sont pas invocable.
    • Exemple :

      import (
          "fmt"
          "go/ast"
          "go/parser"
          "go/token"
          "os"
      )
      
      // ...
      
      funcs := []*ast.FuncDecl{}
      for _, pack := range packs {
          for _, f := range pack.Files {
              for _, d := range f.Decls {
                  if fn, isFn := d.(*ast.FuncDecl); isFn {
                      funcs = append(funcs, fn)
                  }
              }
          }
      }
      
      fmt.Printf("all funcs: %+v\n", funcs)
  2. Invocation externe :

    • Générez un fichier séparé qui appelle chaque méthode souhaitée.
    • Exécutez le fichier généré pour exécuter les méthodes.

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