En Java, on peut transmettre des fonctions en tant que paramètres à l'aide de classes internes anonymes, bien que cela puisse être fastidieux. Go propose une approche plus simple à ce sujet avec les types de fonctions et les fermetures.
Considérez le code Go suivant qui implémente un type de fonction de conversion qui prend un entier et renvoie une valeur de chaîne :
type convert func(int) string
La fonction value satisfait le type de conversion en renvoyant une représentation sous forme de chaîne de l'entier :
func value(x int) string { return fmt.Sprintf("%v", x) }
La fonction quote123 utilise une fonction de conversion pour convertir 123 à une chaîne et cite le résultat :
func quote123(fn convert) string { return fmt.Sprintf("%q", fn(123)) }
Dans la fonction principale, la fonction convert est utilisée avec différentes implémentations du type convert, y compris les fonctions anonymes :
result := quote123(func(x int) string { return fmt.Sprintf("%b", x) })
Le Le type convert garantit la sécurité du type, exigeant que toutes les fonctions qui lui sont transmises implémentent le type convert. Cela permet de maintenir l'exactitude du code et d'éviter les erreurs de type.
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!