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 si iter.next() no tienen ningún valor que desenvolver. while let proporciona azúcar sintáctico en la situación anterior.