Définir une closure simple
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 60 sur 66.
Maintenant que vous comprenez ce que sont les closures, apprenons comment les définir et les utiliser dans votre code. La manière la plus simple de créer une closure est de l'assigner à une variable, ce qui vous permet de l'appeler plus tard.
Voici comment définir une closure de base qui ne prend aucun paramètre :
let my_closure = || {
println!("Hello from the closure!");
};Remarquez les barres verticales vides || - cela indique que la closure ne prend aucun argument. Les accolades contiennent le code qui s'exécute lorsque vous appelez la closure.
Pour appeler votre closure, vous l'utilisez exactement comme une fonction en ajoutant des parenthèses après le nom de la variable :
let my_closure = || {
println!("Hello from the closure!");
};
my_closure(); // Cela appelle la closure et affiche le messageDéfi
FacileVous recevrez une seule entrée contenant un message. Créez une closure qui ne prend aucun paramètre et affiche ce message. Stockez la closure dans une variable, puis appelez-la pour afficher le message.
Exigences :
- Lire le message d'entrée et supprimer les espaces superflus (trim)
- Créez une closure en utilisant la syntaxe
||qui affiche le message - Stocker la closure dans une variable
- Appeler la closure pour l'exécuter
Entrée :
- Une seule ligne contenant un message (par exemple,
Welcome to Rust!)
Sortie :
- Le message affiché par la closure
Aide-mémoire
Une closure est définie à l'aide de barres verticales || et peut être stockée dans une variable :
let my_closure = || {
println!("Hello from the closure!");
};Pour appeler une closure, utilisez des parenthèses après le nom de la variable :
my_closure(); // Exécute la closureEssayez vous-même
use std::io;
fn main() {
// Lire l'entrée
let mut message = String::new();
io::stdin().read_line(&mut message).expect("Failed to read line");
let message = message.trim();
// TODO: Créer une closure qui affiche le message et la stocker dans une variable
// TODO: Appeler la closure pour afficher le message
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book7Gestion des erreurs avec 'Result'
Qu'est-ce qu'un 'Result' ?Utiliser 'match' avec 'Result'is_ok() et is_err()Raccourcis : unwrap et expectL'opérateur point d'interrogation '?'Analyse de chaînes en nombresRécapitulatif - Fonction de division sécurisée10Closures & Fonctions anonymes
Qu'est-ce qu'une closure ?Définir une closure simpleClosures avec paramètresCapturer l'environnementRécapitulatif - Closure d'addition simple2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final