Currying de fonctions en Go Lang
En programmation fonctionnelle, le currying de fonctions est une technique qui vous permet de décomposer une fonction avec plusieurs paramètres en une série de fonctions avec moins de paramètres. Cela peut souvent simplifier le codage et faciliter le raisonnement sur vos fonctions.
Application partielle dans Go
L'application partielle est une forme spécifique de curry dans laquelle une fonction est invoquée avec un sous-ensemble de ses paramètres, renvoyant une nouvelle fonction qui peut être appelée avec les paramètres restants. Go n'a pas de prise en charge intégrée pour l'application partielle, mais vous pouvez l'implémenter manuellement en renvoyant un 闭包 et en attribuant les arguments initiaux en tant que variables locales.
Fonction Currying de Go
Pour effectuer du currying de fonctions dans Go, vous pouvez créer une fonction qui prend comme premier paramètre la valeur initiale qui sera liée à une fermeture créée au sein de la fonction. Cette fermeture peut ensuite prendre les paramètres restants de la fonction d'origine et renvoyer le résultat combiné.
Par exemple, l'extrait de code suivant montre comment implémenter le curry pour une fonction « ajouter » :
package main import "fmt" func main() { mkAdd := func(a int) func(b int) int { return func(b int) int { return a + b } } add3 := mkAdd(3) fmt.Println(add3(5)) // Output: 8 }
Dans cet exemple, la fonction mkAdd prend un entier a comme paramètre et renvoie une fermeture qui prend un entier b comme paramètre. La fermeture additionne a et b et renvoie le résultat. La variable add3 se voit attribuer la fermeture créée en appelant mkAdd(3), ce qui signifie que add3 ajoutera 3 à tout nombre qui lui est transmis.
Conclusion
En comprenant Grâce aux concepts d'application partielle et de currying de fonctions, vous pouvez créer des fonctions flexibles et réutilisables dans Go. N'oubliez pas que même si Go ne prend pas en charge les applications partielles, il peut être implémenté manuellement pour obtenir des fonctionnalités similaires.
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!