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 letcontinuará executando enquanto o valor corresponder ao padrão. - Você pode reescrever o loop
while letcomo um loop infinito com uma instruçãoifque é interrompido quando não houver mais nenhum valor para desempacotar (unwrap) paraiter.next(). Owhile letfornece um atalho para o cenário acima.