Funktionen dynamisch mithilfe von String-Namen in Go aufrufen
Funktionen nehmen in Go eine erstklassige Stellung ein, sodass keine umständlichen Techniken eingesetzt werden müssen in dynamischen Sprachen. Dadurch können Funktionen als Parameter an andere Funktionen übergeben werden, wodurch Metaprogrammierungsfunktionen effektiv aktiviert werden.
Angenommen, Sie möchten eine Funktion als Argument an eine andere Funktion übergeben. Hier ist der Code, den Sie verwenden können, um dies zu erreichen:
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)) }
Das Ausführen dieses Codes erzeugt die folgende Ausgabe:
123 99
Außerdem, wenn die Funktionsauswahl durch eine Nur-Laufzeit-Funktion beeinflusst wird Wenn der Wert bekannt ist, kann eine Karte verwendet werden:
m := map[string]func(int, int) int { "someFunction1": someFunction1, "someFunction2": someFunction2, } ... z := someOtherFunction(x, y, m[key])
Das obige ist der detaillierte Inhalt vonWie rufe ich Go-Funktionen mithilfe von Zeichenfolgennamen dynamisch auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!