Maison >développement back-end >Golang >Comment appeler dynamiquement des fonctions Go à l'aide de noms de chaînes ?
Invocation dynamique de fonctions à l'aide de noms de chaînes dans Go
Dans Go, les fonctions occupent une position de première classe, éliminant le besoin de techniques détournées utilisées dans des langages dynamiques. Cela permet de transmettre des fonctions en tant que paramètres à d'autres fonctions, permettant ainsi des capacités de métaprogrammation.
Par exemple, supposons que vous souhaitiez transmettre une fonction en tant qu'argument à une autre fonction. Voici le code que vous pouvez utiliser pour accomplir cela :
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)) }
L'exécution de ce code produira le résultat suivant :
123 99
De plus, si la sélection de fonction est influencée par un runtime uniquement valeur connue, une carte peut être utilisée :
m := map[string]func(int, int) int { "someFunction1": someFunction1, "someFunction2": someFunction2, } ... z := someOtherFunction(x, y, m[key])
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!