Aliase für Result

RustRustBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen wir, wie wir in Rust Aliase für einen bestimmten Result-Typ erstellen, um ihn mehrmals wiederverwenden zu können und um alle zugehörigen Results innerhalb eines Moduls bequem zu definieren.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden und es mit rustc main.rs &&./main kompilieren und ausführen.

Aliase für Result

Was ist, wenn wir einen bestimmten Result-Typ oftmals wiederverwenden möchten? Denken Sie daran, dass Rust uns erlaubt, Aliase zu erstellen. Zufällig können wir eines für den spezifischen Result definieren, über den wir sprechen.

Auf Modul Ebene kann das Erstellen von Aliasen besonders hilfreich sein. Fehler, die in einem bestimmten Modul gefunden werden, haben oft den gleichen Err-Typ, sodass ein einzelnes Alias alle zugehörigen Results präzise definieren kann. Dies ist so nützlich, dass die std-Bibliothek sogar einen liefert: io::Result!

Hier ist ein kurzes Beispiel, um die Syntax zu demonstrieren:

use std::num::ParseIntError;

// Definiere einen generischen Alias für ein `Result` mit dem Fehlertyp `ParseIntError`.
type AliasedResult<T> = Result<T, ParseIntError>;

// Verwende das obige Alias, um auf unseren spezifischen `Result`-Typ zu verweisen.
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)
    })
}

// Hier erlaubt uns das Alias wiederum, etwas Platz zu sparen.
fn print(result: AliasedResult<i32>) {
    match result {
        Ok(n)  => println!("n ist {}", n),
        Err(e) => println!("Fehler: {}", e),
    }
}

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

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu Aliasen für Result abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.