Heim >Backend-Entwicklung >Golang >Wie kann ich Funktionszeiger aus Funktionsnamen in Go abrufen?
Funktionszeiger aus Funktionsnamen in Go abrufen
Viele Programmiersprachen ermöglichen den Zugriff auf Funktionszeiger aus Zeichenfolgendarstellungen von Funktionsnamen. Diese Funktion ist besonders nützlich für Metaprogrammierungstechniken, wie zum Beispiel die dynamische Auswahl von Funktionen zur Ausführung.
Lösung in Go
Im Gegensatz zu einigen anderen Sprachen unterstützt Go zunächst nativ Funktionszeiger -Klassenwerte, sodass keine zusätzlichen Mechanismen erforderlich sind, um sie aus Funktionsnamen zu erhalten. Stattdessen können Funktionen direkt als Argumente an andere Funktionen übergeben werden.
Betrachten Sie beispielsweise den folgenden Code:
package main import "fmt" func someFunction1(a, b int) int { return a + b } func someFunction2(a, b int) int { return a - b } func someOtherFunction(a, b int, f func(int, int) int) int { return f(a, b) } func main() { fmt.Println(someOtherFunction(111, 12, someFunction1)) fmt.Println(someOtherFunction(111, 12, someFunction2)) }
In diesem Code akzeptiert someOtherFunction einen Funktionszeiger als Argument und ruft auf die angegebene Funktion mit den bereitgestellten Argumenten.
Verwenden einer Karte für dynamische Funktionen Auswahl
In Fällen, in denen die Auswahl einer Funktion von Laufzeitinformationen abhängt, können Sie eine Karte verwenden, um Funktionsnamen mit entsprechenden Funktionszeigern zu verknüpfen. Zum Beispiel:
m := map[string]func(int, int) int{ "someFunction1": someFunction1, "someFunction2": someFunction2, } ... z := someOtherFunction(x, y, m[key])
Dadurch können Sie Funktionen basierend auf einem angegebenen Schlüssel dynamisch abrufen und ausführen.
Das obige ist der detaillierte Inhalt vonWie kann ich Funktionszeiger aus Funktionsnamen in Go abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!