Bucles while let
Al igual que con if let
, hay una variante while let
que prueba repetidamente un valor con respecto a un patrón:
fn main() { let v = vec![10, 20, 30]; let mut iter = v.into_iter(); while let Some(x) = iter.next() { println!("x: {x}"); } }
Aquí, el iterador devuelto por v.into_iter()
devolverá Option<i32>
en cada llamada a next()
. Devuelve Some(x)
hasta que finaliza y, a continuación, devuelve None
. while let
nos permite seguir iterando a través de todos los elementos.
Consulta de nuevo la sección de coincidencia de patrones para obtener más información sobre los patrones de Rust.
- Señala que el bucle
while let
seguirá funcionando siempre que el valor coincida con el patrón. - Puedes reescribir el bucle
while let
como un ciclo infinito con una instrucción if que deje de funcionar siiter.next()
no tienen ningún valor que desenvolver.while let
proporciona azúcar sintáctico en la situación anterior.