Qu'est-ce qu'un 'Result' ?
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 42 sur 66.
Alors que Option gère l'absence de valeurs, Rust fournit un autre enum pour un scénario différent mais tout aussi important : les opérations qui peuvent échouer. Voici Result<T, E> - l'outil principal de Rust pour gérer les erreurs récupérables.
L'énumération Result possède deux variantes qui représentent le résultat d'une opération :
enum Result<T, E> {
Ok(T), // Succès - contient le résultat réussi
Err(E), // Échec - contient les informations d'erreur
}Lorsqu'une opération réussit, elle retourne Ok(value) contenant le résultat réussi. Lorsqu'elle échoue, elle retourne Err(error) contenant des informations sur ce qui s'est mal passé. Cette gestion explicite des cas de succès et d'échec rend les programmes Rust plus fiables et prévisibles.
Vous rencontrerez Result partout en Rust - des opérations sur les fichiers qui pourraient échouer en raison de fichiers manquants, aux requêtes réseau qui pourraient expirer, en passant par les opérations d'analyse qui pourraient recevoir une entrée invalide. Contrairement aux langages qui utilisent des exceptions, Rust vous oblige à reconnaître que les opérations peuvent échouer et à gérer les deux issues explicitement.
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 Result<T, E> gère les opérations qui peuvent échouer :
enum Result<T, E> {
Ok(T), // Succès - contient le résultat réussi
Err(E), // Échec - contient les informations d'erreur
}Lorsqu'une opération réussit, elle retourne Ok(value). Lorsqu'elle échoue, elle retourne Err(error).
Result est utilisé pour les erreurs récupérables telles que les opérations sur les fichiers, les requêtes réseau et les opérations d'analyse. Rust nécessite une gestion explicite des cas de succès et d'échec.
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 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ée2Introduction 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