while let
Semelhante ao if let
, while let
pode tornar sequências de match
embaraçosas mais toleráveis. Considere a seguinte sequência que incrementa i
:
O uso de while let
torna esta sequência muito mais agradável:
fn main() {// Tornar `optional` do tipo `Option<i32>`let mut optional = Some(0);// Isto lê-se: "enquanto `let` desestruturar `optional`" à// `Some(i)`, avaliar o bloco (`{}`). Se não `break`.while let Some(i) = optional {if i > 9 {println!("Greater than 9, quit!");optional = None;} else {println!("`i` is `{:?}`. Try again.", i);optional = Some(i + 1);}// ^ Menos desvio à direita e não exige// manipular explicitamente o caso de falha.}// ^ `if let` tinha cláusulas `else` ou `else if` opcionais adicionais// `while let` não tem estas.}