Preguntarle cosas a un iterador en Rust
Los métodos terminales que responden una pregunta en vez de construir una colección.
fn main() {
let nums = [4, 8, 15, 16, 23, 42];
println!("{}", nums.iter().any(|n| *n > 40));
println!("{}", nums.iter().all(|n| n % 2 == 0));
println!("{:?}", nums.iter().position(|n| *n == 15));
println!("{:?}", nums.iter().find(|n| **n % 5 == 0));
println!("{:?}", nums.iter().min_by_key(|n| (**n - 20).abs()));
println!("{}", nums.iter().filter(|n| **n > 10).count());
println!("{}", (1..=5).product::<i32>());
}
Cómo funciona
anyyallparan apenas se conoce la respuesta.positionyfindubican la primera coincidencia.min_by_key,countyproductreducen a un solo valor.
Palabras clave y builtins usados aquí
fni32let
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 416
- Tokens
- 208
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 125 segundos.
Paso 1 de 3 en Operaciones terminales; paso 9 de 14 en Iteradores y closures.