Menu
Coddy logo textTech

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 valeur

Lorsqu'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.

quiz iconTestez-vous

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

quiz iconTestez-vous

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

quiz iconTestez-vous

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 valeur

Les 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.

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 Logic & Flow