Menu
Coddy logo textTech

Fonctions anonymes

Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 44 sur 65.

Jusqu'à présent, vous avez créé des fonctions avec des noms tels que calculateTotal ou printMessage. Mais parfois, vous avez besoin d'une fonction simple pour une seule tâche spécifique, et lui donner un nom semble superflu. C'est là que les fonctions anonymes s'avèrent utiles.

Une fonction anonyme est une fonction sans nom. Vous la définissez exactement là où vous en avez besoin, ce qui rend votre code plus concis pour des opérations courtes et ponctuelles. La syntaxe est simple : il vous suffit d'écrire la liste des paramètres suivie du corps de la fonction :

(parameter) {
  // corps de la fonction
}

Les fonctions anonymes sont particulièrement utiles avec les méthodes de liste. Par exemple, au lieu de créer une fonction nommée distincte pour afficher chaque élément d'une liste, vous pouvez utiliser une fonction anonyme directement avec la méthode forEach :

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Cette approche permet de garder votre code propre et concis, surtout lorsque la logique de la fonction est simple et ne sera pas réutilisée ailleurs dans votre programme.

challenge icon

Défi

Facile

Créez un programme qui traite une liste de noms d'employés à l'aide de fonctions anonymes. Votre programme démontrera comment utiliser des fonctions anonymes avec la méthode forEach pour effectuer différentes opérations sur chaque élément de la liste.

  1. Lisez une chaîne de caractères en entrée contenant des noms d'employés séparés par des virgules (par exemple, "Alice,Bob,Charlie,Diana")
  2. Divisez la chaîne d'entrée en une liste de noms individuels à l'aide de la méthode split()
  3. Utilisez la méthode forEach avec une fonction anonyme pour afficher chaque nom d'employé avec un message de bienvenue
  4. Utilisez la méthode forEach avec une autre fonction anonyme pour afficher chaque nom d'employé en majuscules
  5. Utilisez la méthode forEach avec une troisième fonction anonyme pour afficher chaque nom d'employé ainsi que son nombre de caractères

Par exemple, si l'entrée est "Alice,Bob,Charlie", votre programme doit afficher :

Processing employee list: Alice,Bob,Charlie
===========================================
Welcome Messages:
Welcome to the team, Alice!
Welcome to the team, Bob!
Welcome to the team, Charlie!
===========================================
Names in Uppercase:
ALICE
BOB
CHARLIE
===========================================
Name Lengths:
Alice has 5 characters
Bob has 3 characters
Charlie has 7 characters

Si l'entrée est "John,Sarah", votre programme doit afficher :

Processing employee list: John,Sarah
===========================================
Welcome Messages:
Welcome to the team, John!
Welcome to the team, Sarah!
===========================================
Names in Uppercase:
JOHN
SARAH
===========================================
Name Lengths:
John has 4 characters
Sarah has 5 characters

Votre programme doit utiliser trois appels distincts à la méthode forEach, chacun avec sa propre fonction anonyme. Les fonctions anonymes doivent être définies en ligne sans leur donner de noms. Chaque fonction anonyme doit prendre un seul paramètre représentant le nom de l'employé actuel et effectuer l'opération spécifiée. Utilisez l'interpolation de chaîne pour formater les messages de sortie exactement comme indiqué ci-dessus.

Aide-mémoire

Une fonction anonyme est une fonction sans nom, définie exactement là où vous en avez besoin. La syntaxe utilise une liste de paramètres suivie du corps de la fonction :

(parameter) {
  // corps de la fonction
}

Les fonctions anonymes sont particulièrement utiles avec les méthodes de liste comme forEach :

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Cette approche permet de garder le code propre et concentré pour des opérations simples et ponctuelles qui ne seront pas réutilisées ailleurs.

Essayez vous-même

import 'dart:io';

void main() {
  // Lire la chaîne d'entrée contenant les noms des employés
  String? input = stdin.readLineSync();
  
  // Diviser l'entrée en une liste de noms
  List<String> employeeNames = input!.split(',');
  
  // Afficher le message de traitement initial
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: Écrivez votre code ci-dessous
  // Utiliser forEach avec des fonctions anonymes pour :
  // 1. Afficher des messages de bienvenue
  // 2. Afficher les noms en majuscules  
  // 3. Afficher la longueur des noms
  
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux