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
parsenecesita un tipo destino, por anotación o turbofish.unwrap_orprovee un valor por defecto para el caso de error.filter_mapconserva solo los valores que sí parsearon.
Palabras clave y builtins usados aquí
Vecf64fni32let
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.
Paso 2 de 3 en Texto; paso 28 de 39 en Fundamentos del lenguaje.