Maison > développement back-end > Golang > Comment Go active-t-il la transmission de fonctions en tant que paramètres ?

Comment Go active-t-il la transmission de fonctions en tant que paramètres ?

Barbara Streisand
Libérer: 2024-12-05 10:14:10
original
656 Les gens l'ont consulté

How Does Go Enable Passing Functions as Parameters?

Passer des fonctions en tant que paramètres dans Go

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
Copier après la connexion

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)
}
Copier après la connexion

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))
}
Copier après la connexion

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) })
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal