Menu
Coddy logo textTech

Parsing de Strings a números

Parte de la sección Lógica y Flujo del Journey de Rust de Coddy. Lección 47 de 66.

Una de las aplicaciones más comunes en el mundo real de Result es convertir cadenas a números. En Rust, esto se hace usando el método .parse(), que demuestra perfectamente por qué existe Result, porque el análisis puede fallar.

El método .parse() intenta convertir una cadena en un número, pero no todas las cadenas representan un número válido. Por ejemplo, "42" puede ser convertido en el número 42, pero "hello" no puede ser convertido en ningún número:

let valid_number = "42";
let invalid_number = "hello";

let result1: Result = valid_number.parse();
let result2: Result = invalid_number.parse();

Cuando el análisis tiene éxito, .parse() devuelve Ok(number) que contiene el valor convertido. Cuando falla, devuelve Err(error) con información sobre por qué falló el análisis. Esto te obliga a manejar ambas posibilidades de forma explícita, evitando que tu programa se bloquee ante una entrada no válida.

Puedes manejar el resultado del análisis utilizando cualquiera de las técnicas de Result que has aprendido: match para un manejo explícito, unwrap() si estás seguro de que tendrá éxito, o el operador ? para propagar errores.

challenge icon

Desafío

Fácil
Escribe una función parse_to_integer que tome una cadena input y devuelva el valor entero analizado. Si la cadena no se puede analizar como un entero válido, devuelve 0 como valor predeterminado.

Usa el método .parse() para convertir la cadena en un i32 y gestiona Result adecuadamente para proporcionar un valor de retorno seguro.

Parámetros:

  • input (String): La cadena que se analizará como un entero

Devuelve: El entero analizado si la operación tiene éxito, o 0 si el análisis falla (i32)

Pruébalo tú mismo

fn parse_to_integer(input: String) -> i32 {
    // Escribe el código aquí
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de Rust online