Bienvenidos sean a este post, hoy veremos un método de iter.
Este método nos permite ejecutar un closure por cada elemento iterable. Veamos como es su síntaxis:
objeto_it.for_each(|variable| { ... instrucciones ... });
Se aplica directamente al objeto iterable y como argumento pasaremos el closure para procesar la información del iterador. Muestro como se compone el closure para tenerlo de referencia. La variable irá entre los pipes y se usará principalmente para tomar el valor iterado en ese momento. En el bloque irán todas las instrucciones para ejecutar las acción relacionada. Para entender el concepto vamos a analizar un ejemplo. Para ello, generen un proyecto nuevo y modifiquen a main.rs de la siguiente manera:
main.rs
fn main() { let v = vec!["Hola","Mundo","Como","Estan"]; let mut n = 0; v.iter().for_each(|&x| { n+=1; println!("{}) {}", n, x); });}
Primero creamos una colección de tipo Vector con cuatro valores. Luego definimos una variable que usaremos más adelante y la iniciamos con el valor de cero. Lo siguiente es ver como trabaja nuestro método. Para ello, convertirmos a la colección en un objeto iterable y le aplicamos el método. Lo primero a realizar es declarar una variable que recibirá el valor de cada pasada del objeto iterable, para poder trabajar con este aplicamos el operador de referencia. Esto es así porque los valores se deben manipular de esta manera. En el bloque incrementamos el valor de n por cada pasada y luego mostramos a este valor y el asignado en x. Compilemos y veamos como es la salida:
$ cargo run Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s Running `target/debug/iterar`1) Hola2) Mundo3) Como4) Estan$
Como mencionamos, este pasa por todos los valores. Esto es así porque no deja de ser un for mejorado donde procesa cada elemento almacenado en el mismo. También podemos omitir las variables del closure pero deben usar al guión bajo (_) entre los pipes.
En resumén, hoy hemos visto a for_each, que es, para que sirve, como se utiliza, y un ejemplo práctico para poder ver como trabaja. Espero les haya sido de utilidad, sigueme en mis redes para recibir una notificación cada vez que subo un nuevo post:


Donación
Es para mantenimento del sitio, gracias!
$1.50





