Maison >développement back-end >Golang >Comment récupérer les noms de fonctions à l'aide de Reflection in Go ?
Récupération des noms de fonctions à l'aide de la réflexion
Dans Go, le système de réflexion permet l'introspection et la manipulation des types et des valeurs au moment de l'exécution. Cependant, lors de la récupération du nom d'une fonction à l'aide de la méthode Name sur son type, une chaîne vide peut être renvoyée.
Pour résoudre ce problème, utilisez la fonction FuncForPc du package d'exécution. Il prend un pointeur vers une valeur de fonction et renvoie un objet *Func. Cet objet donne accès au nom de la fonction, qui peut être obtenu avec la méthode Name.
Voici une version modifiée de votre exemple utilisant FuncForPc :
package main import ( "fmt" "reflect" "runtime" ) func main() { name := runtime.FuncForPC(reflect.ValueOf(main).Pointer()).Name() fmt.Println("Name of function :", name) }
Ce code imprime le résultat suivant :
Name of function : main.main
Si vous avez uniquement besoin du nom de la fonction sans le préfixe du package, vous pouvez tokeniser le résultat Nom.
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!