Menu
CoddyTech

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 de Result en el mundo real es convertir cadenas en 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" se puede analizar y convertir en el número 42, pero "hello" no se puede convertir 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 se realiza correctamente, .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 gestionar explícitamente ambas posibilidades, lo que evita que tu programa se bloquee con una entrada no válida.

Puedes manejar el resultado del análisis sintáctico usando cualquiera de las técnicas de Result que has aprendido: match para un manejo explícito, unwrap() si tienes la certeza 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 a un i32 y gestiona Result adecuadamente para proporcionar un valor de retorno seguro.

Parámetros:

  • input (String): La cadena que se va a 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