typestar

Parsear texto en Rust

Convertir cadenas en números, y decidir qué significa una falla.

fn main() {
    let count: i32 = "42".parse().unwrap();
    let ratio = "3.5".parse::<f64>().unwrap_or(0.0);
    println!("{count} {ratio}");

    let raw = "10,x,30,4";
    let nums: Vec<i32> = raw
        .split(',')
        .filter_map(|part| part.parse().ok())
        .collect();
    println!("{:?} sum {}", nums, nums.iter().sum::<i32>());
}

Cómo funciona

  1. parse necesita un tipo destino, por anotación o turbofish.
  2. unwrap_or provee un valor por defecto para el caso de error.
  3. filter_map conserva solo los valores que sí parsearon.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
299
Tokens
117
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 78 segundos.

Escribe este fragmento

Paso 2 de 3 en Texto; paso 28 de 39 en Fundamentos del lenguaje.

← Anterior Siguiente →