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çãoif
que Ă© interrompido quando nĂŁo houver mais nenhum valor para desempacotar (unwrap) paraiter.next()
. Owhile let
fornece um atalho para o cenĂĄrio acima.