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
Barbara Streisandoriginal
2024-12-05 10:14:10654parcourir

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

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!

Déclaration:
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