Maison > développement back-end > Golang > Go peut-il transmettre des fonctions en tant que paramètres comme Java, et comment ?

Go peut-il transmettre des fonctions en tant que paramètres comme Java, et comment ?

Susan Sarandon
Libérer: 2024-12-09 09:47:06
original
225 Les gens l'ont consulté

Can Go Pass Functions as Parameters Like Java, and How?

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

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

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

Exemples

Dans l'exemple de code fourni, nous montrer comment utiliser le type de fonction convert et transmettre des fonctions comme paramètres :

  • Nous créons une valeur de fonction qui implémente le type de conversion et renvoie la représentation sous forme de chaîne d'un entier.
  • Nous appelons quote123 avec à la fois une valeur et une fonction anonyme pour convertir 123 en chaîne et afficher le résultat cité.
  • Nous définissons également une fonction foo qui renvoie la chaîne "foo" et la passons en paramètre à quote123.
  • Enfin, nous vérifions que le type de foo satisfait le type de conversion à runtime utilisant convert(foo).

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!

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