Qu'est-ce qu'une 'Option' ?
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 35 sur 66.
En programmation, vous rencontrez souvent des situations où une valeur peut être présente ou non. Par exemple, la recherche d'un élément dans une liste peut permettre de trouver l'élément, ou celui-ci peut ne pas exister du tout. Les langages de programmation traditionnels utilisent souvent des valeurs spéciales comme null ou -1 pour représenter « rien », mais cette approche peut entraîner des bogues et des plantages.
Rust adopte une approche différente avec l'énumération Option<T>. Il s'agit d'un type intégré qui représente explicitement la possibilité d'une absence. Au lieu de deviner si une valeur existe, Rust vous oblige à gérer les deux cas dès le départ.
L'énumération Option possède exactement deux variantes :
Some(value) // Contient une valeur
None // Ne contient aucune valeurLorsqu'une fonction peut ne pas retourner de valeur, elle retourne un Option. S'il y a une valeur à retourner, elle l'enveloppe dans Some. S'il n'y a pas de valeur, elle retourne None.
Cela rend l'absence potentielle explicite dans le système de types, vous empêchant d'utiliser accidentellement une valeur qui n'existe pas.
Vous avez déjà vu Option en action avec la méthode .get() des hash maps - elle renvoie Some(&value) lorsqu'une clé existe, ou None lorsqu'elle n'existe pas. Ce motif apparaît partout dans Rust, rendant votre code plus sûr et plus prévisible.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Aide-mémoire
L'énumération Option<T> représente une valeur qui peut être présente ou non, évitant ainsi les bogues liés à l'utilisation de valeurs inexistantes.
Elle possède deux variantes :
Some(value) // Contient une valeur
None // Ne contient aucune valeurLes fonctions qui pourraient ne pas retourner de valeur utilisent Option. Par exemple, la méthode .get() d'une table de hachage (hash map) retourne Some(&value) lorsqu'une clé existe, ou None lorsqu'elle n'existe pas.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
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 Book2Introduction 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 final6Gérer l'absence avec 'Option'
Qu'est-ce qu'une 'Option' ?Utiliser 'match' avec 'Option'is_some() et is_none()Déballer une 'Option'La méthode expectFournir une valeur par défaut : unwrap_orRécapitulatif - Trouver un élément