Alias pour Result

RustRustBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous apprenons à créer des alias pour un type Result spécifique en Rust, ce qui nous permet de le réutiliser plusieurs fois et de définir commodément tous les Result associés dans un module.

Note : Si le laboratoire ne spécifie pas de nom de fichier, vous pouvez utiliser n'importe quel nom de fichier que vous voulez. Par exemple, vous pouvez utiliser main.rs, le compiler et l'exécuter avec rustc main.rs &&./main.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/DataTypesGroup -.-> rust/string_type("String Type") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading") subgraph Lab Skills rust/integer_types -.-> lab-99241{{"Alias pour Result"}} rust/string_type -.-> lab-99241{{"Alias pour Result"}} rust/function_syntax -.-> lab-99241{{"Alias pour Result"}} rust/expressions_statements -.-> lab-99241{{"Alias pour Result"}} rust/operator_overloading -.-> lab-99241{{"Alias pour Result"}} end

Alias pour Result

Et si on voulait réutiliser un type Result spécifique plusieurs fois? Rappelez-vous que Rust nous permet de créer des alias. Commode, n'est-ce pas? Nous pouvons définir un alias pour le Result spécifique en question.

Au niveau d'un module, la création d'alias peut être particulièrement utile. Les erreurs trouvées dans un module spécifique ont souvent le même type Err, donc un seul alias peut définir de manière concise tous les Result associés. C'est si pratique que la bibliothèque std en fournit même un : io::Result!

Voici un exemple rapide pour montrer la syntaxe :

use std::num::ParseIntError;

// Définissez un alias générique pour un `Result` avec le type d'erreur `ParseIntError`.
type AliasedResult<T> = Result<T, ParseIntError>;

// Utilisez l'alias ci-dessus pour vous référer à notre type `Result` spécifique.
fn multiply(first_number_str: &str, second_number_str: &str) -> AliasedResult<i32> {
    first_number_str.parse::<i32>().and_then(|first_number| {
        second_number_str.parse::<i32>().map(|second_number| first_number * second_number)
    })
}

// Ici, l'alias nous permet encore une fois de gagner de l'espace.
fn print(result: AliasedResult<i32>) {
    match result {
        Ok(n)  => println!("n est {}", n),
        Err(e) => println!("Erreur : {}", e),
    }
}

fn main() {
    print(multiply("10", "2"));
    print(multiply("t", "2"));
}

Résumé

Félicitations! Vous avez terminé le laboratoire sur les alias pour Result. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.