Maison >développement back-end >Golang >Go peut-il transmettre des fonctions en tant que paramètres comme Java, et comment ?
Fonctions en tant que paramètres dans Go
En Java, il est possible de passer des fonctions en paramètres, même si cela peut impliquer une certaine complexité dans la mise en œuvre classes internes anonymes. Mais Go propose-t-il un mécanisme similaire pour simplifier ce processus ?
Types de fonctions de Go
Oui, Go prend en charge la transmission de fonctions en tant que paramètres à l'aide de types de fonctions. Les types de fonctions définissent la signature d'une fonction, en spécifiant les types de ses paramètres et ses valeurs de retour. Par exemple, nous pouvons définir une conversion de type de fonction qui prend un argument entier et renvoie une chaîne :
type convert func(int) string
Implémentation des types de fonctions
Nous pouvons implémenter une fonction concrète qui satisfait le type de fonction de conversion :
func value(x int) string { return fmt.Sprintf("%v", x) }
Passer les fonctions en tant que Paramètres
Avec le type de fonction défini et implémenté, nous pouvons transmettre des fonctions en tant que paramètres à d'autres fonctions. Par exemple, la fonction suivante quote123 prend une fonction de type convert et l'applique au nombre 123 :
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
Exemples
Dans l'exemple de code fourni, nous montrer comment utiliser le type de fonction convert et transmettre des fonctions comme paramètres :
Cela démontre la flexibilité et l'expressivité des types de fonctions de Go, permettant la création de code composable et réutilisable.
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!