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
Libérer: 2024-12-05 11:08:14
original
220 Les gens l'ont consulté

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

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