Frage:
Ist es möglich, den Namen einer Funktion in Go programmgesteuert abzurufen? ? Können wir beispielsweise anhand der Funktion foo() ihren Namen mit einer Methode wie GetFunctionName(foo) ermitteln?
Antwort:
Ja, das ist möglich Ermitteln Sie den Namen einer Funktion in Go mithilfe von runtime.FuncForPC Funktion.
Lösung:
Hier ist eine Lösung mit runtime.FuncForPC:
package main import ( "fmt" "reflect" "runtime" ) func foo() {} func GetFunctionName(i interface{}) string { return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() } func main() { fmt.Println("name:", GetFunctionName(foo)) }
Erklärung:
Durch den Aufruf von GetFunctionName(foo) erhalten Sie die Zeichenfolge „foo“ als Ergebnis.
Das obige ist der detaillierte Inhalt vonKann Go den Namen einer Funktion programmgesteuert abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!