Loops (Laços) while let

Similar a if let, hĂĄ uma variante while let que testa repetidamente se um valor corresponde a um padrĂŁo:

fn main() {
    let v = vec![10, 20, 30];
    let mut iter = v.into_iter();

    while let Some(x) = iter.next() {
        println!("x: {x}");
    }
}

Aqui o iterador retornado por v.into_iter() retornarå uma Option<i32> em cada chamada para next(). Ele retorna Some(x) até que seja concluído e, em seguida, retorna None. O while let nos permite continuar iterando por todos os itens.

Consulte correspondĂȘncia de padrĂ”es (pattern matching) para obter mais detalhes sobre padrĂ”es em Rust.

  • Ressalte que o loop while let continuarĂĄ executando enquanto o valor corresponder ao padrĂŁo.
  • VocĂȘ pode reescrever o loop while let como um loop infinito com uma instrução if que Ă© interrompido quando nĂŁo houver mais nenhum valor para desempacotar (unwrap) para iter.next(). O while let fornece um atalho para o cenĂĄrio acima.