Псевдонимы для Result

RustRustBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы узнаем, как создавать псевдонимы для определенного типа Result в Rust, чтобы можно было использовать его несколько раз и удобно определять все связанные Result внутри модуля.

Примечание: Если практическое занятие не задает имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать main.rs, скомпилировать и запустить его с помощью rustc main.rs &&./main.

псевдонимы для Result

Что делать, если мы хотим многократно использовать определенный тип Result? Помните, что Rust позволяет создавать псевдонимы. К счастью, мы можем определить один для конкретного Result.

На уровне модуля создание псевдонимов может быть особенно полезным. Ошибки, обнаруженные в определенном модуле, часто имеют один и тот же тип Err, поэтому один псевдоним может кратко определить все связанные Result. Это настолько полезно, что стандартная библиотека std даже предоставляет один: io::Result!

Вот простой пример, демонстрирующий синтаксис:

use std::num::ParseIntError;

// Определите общий псевдоним для `Result` с типом ошибки `ParseIntError`.
type AliasedResult<T> = Result<T, ParseIntError>;

// Используйте вышеуказанный псевдоним, чтобы сослаться на наш конкретный тип `Result`.
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)
    })
}

// Здесь псевдоним снова позволяет нам节省ить некоторое пространство.
fn print(result: AliasedResult<i32>) {
    match result {
        Ok(n)  => println!("n is {}", n),
        Err(e) => println!("Error: {}", e),
    }
}

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

Резюме

Поздравляем! Вы завершили практическое занятие по псевдоними для Result. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.