Étant donné une fonction, est-il possible d'obtenir son nom? Dire:
func foo() {
}
func GetFunctionName(i interface{}) string {
// ...
}
func main() {
// Will print "name: foo"
fmt.Println("name:", GetFunctionName(foo))
}
On m'a dit que runtime.FuncForPC aiderait, mais je n'ai pas compris comment l'utiliser.
go
reflection
go-reflect
moraes
la source
la source
GetFunctionName
peut renvoyer le même nom pour différentes fonctions?Pas exactement ce que vous voulez, car il enregistre le nom de fichier et le numéro de ligne, mais voici comment je le fais dans ma bibliothèque Tideland Common Go ( http://tideland-cgl.googlecode.com/ ) en utilisant le package "runtime":
la source