Les closures, résumé des premières notions Closure

Rappelons ici la syntaxe d’une closure telle qu’utilisée précédemment :

  • On met entre barres verticales « | | » la ou les variables d’entrée de la fonction anonymes.

  • Quand l’expression est simple, il n’est pas utile de mettre l’expression de la closure entre parenthèses. Quand elle est plus élaborée, il faut placer l’expression entre accolades.

On peut résumer cette syntaxe avec la ligne ci-dessous :

let closure = |parametre_1, parametre_2| -> 
type_de_retour {..... expression .....}; 

Voici à présent quelques remarques utiles.

  • Une des grandes forces d’une closure est son accès à des variables ou à des fonctions définies dans sa portée, c’est-à-dire en dehors de sa propre définition. Cela permet, en une ligne, de fournir un outil très performant (comme pour l’exemple du tri, plus haut). On parle parfois de capture de valeurs.

  • Les closures fonctionnent avec de l’inférence de type. Autrement dit, la closure peut interpoler le type manipulé sans que ce dernier soit précisé explicitement.

  • Les closures en Rust offrent une solution particulièrement performante. Leur usage est donc encouragé, contrairement à d’autres langages où elles peuvent parfois altérer les performances.

  • Un point très important :...

Pour consulter la suite, découvrez le livre suivant :
couv_EIRUST.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Tri facile avec une closure
Suivant
Considérations sur les traits FnOnce, FnMut et Fn