Chapitre 14 — Programmation fonctionnelle sur les collections
Partie 1A — Apprendre Dart · Chapitre 14 sur 62 · 6 h
Chapitre 14 — Programmation fonctionnelle sur les collections
Niveau : intermédiaire Durée estimée : 6 h Pré-requis : chapitre 05 (boucles), chapitre 06 (collections), chapitre 07 (fonctions), chapitre 13 (exceptions) Ce que vous saurez faire à la fin : transformer, filtrer, trier et résumer n'importe quelle liste de joueurs, d'ennemis ou d'objets d'inventaire en quelques lignes déclaratives, sans écrire une seule boucle
for.
14.0 — Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de :
- distinguer le style impératif (comment faire) du style déclaratif (quoi obtenir) ;
- écrire une fonction anonyme et une fonction fléchée pour les passer à une méthode ;
- parcourir une collection avec
forEach(); - transformer une collection avec
map(), y compris en changeant de type ; - expliquer ce qu'est un
Iterableet pourquoitoList()est souvent obligatoire ; - filtrer une collection avec
where(); - rechercher un élément avec
firstWhere(),lastWhere(),singleWhere()etindexWhere(); - répondre à une question par oui ou non avec
any(),every()etcontains(); - réduire une collection à une seule valeur avec
reduce()etfold(); - choisir entre
reduce()etfold()en connaissance de cause ; - trier une liste avec
sort()et écrire un comparateur ; - utiliser
compareTo()sur des nombres et sur des textes ; - trier des objets par score, par nom, puis par plusieurs critères ;
- trier une copie sans modifier la liste d'origine ;
- découper une collection avec
take()etskip(); - aplatir des listes imbriquées avec
expand(); - dédoublonner avec
toSet(); - assembler une collection en texte avec
join(); - utiliser le spread operator
...et sa version nullable...?; - écrire un
ifet unfordirectement à l'intérieur d'une liste littérale ; - chaîner plusieurs opérations en une seule expression lisible ;
- décider, avec des critères clairs, quand il vaut mieux revenir à une boucle
for.
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion