Alias para Result

RustRustBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo crear alias para un tipo Result específico en Rust, lo que nos permitirá reutilizarlo múltiples veces y definir convenientemente todos los Result asociados dentro de un módulo.

Nota: Si el laboratorio no especifica un nombre de archivo, puede usar cualquier nombre de archivo que desee. Por ejemplo, puede usar main.rs, compilar y ejecutarlo con 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 para Result"}} rust/string_type -.-> lab-99241{{"Alias para Result"}} rust/function_syntax -.-> lab-99241{{"Alias para Result"}} rust/expressions_statements -.-> lab-99241{{"Alias para Result"}} rust/operator_overloading -.-> lab-99241{{"Alias para Result"}} end

alias para Result

¿Qué pasa cuando queremos reutilizar un tipo Result específico muchas veces? Recuerde que Rust nos permite crear alias. Convenientemente, podemos definir uno para el Result específico en cuestión.

A nivel de módulo, crear alias puede ser particularmente útil. Los errores encontrados en un módulo específico a menudo tienen el mismo tipo Err, por lo que un solo alias puede definir todos los Result asociados de manera concisa. Esto es tan útil que la biblioteca std incluso proporciona uno: io::Result!

Aquí hay un ejemplo rápido para mostrar la sintaxis:

use std::num::ParseIntError;

// Defina un alias genérico para un `Result` con el tipo de error `ParseIntError`.
type AliasedResult<T> = Result<T, ParseIntError>;

// Utilice el alias anterior para referirse a nuestro tipo `Result` específico.
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)
    })
}

// Aquí, el alias nuevamente nos permite ahorrar algo de espacio.
fn print(result: AliasedResult<i32>) {
    match result {
        Ok(n)  => println!("n es {}", n),
        Err(e) => println!("Error: {}", e),
    }
}

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

Resumen

¡Felicitaciones! Has completado el laboratorio de Alias para Result. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.