Rust : if let

De Justine's wiki
Aller à la navigation Aller à la recherche

<syntaxhighlight lang='rust'> fn main() {

   //if let est une syntaxe spéciale qui permet de simplifier
   //Prenons un exemple un peu verbeux
   //on veut juste savoir si la variable est pas vide
   let config_max = Some(3u8);
   match config_max {
       Some(max) => println!("The maximum is configured to be {}", max),
       _ => (),
   }
   //On peut simplifier:
   let conf_max = Some(30u8);
   if let Some(max) = conf_max {
       println!("The maximum is configured to be {}", max);
   }
   //Même chose avec du else en plus
   //(..reprend l'exemple pour les matches, avec les enum Coin etc)
   //On simplifie ça...
   let mut count = 0;
   match coin {
       Coin::Quarter(state) => println!("State quarter from {:?}!", state),
       _ => count += 1,
   }
   //...en ça
   let mut count = 0;
   if let Coin::Quarter(state) = coin {
       println!("State quarter from {:?}!", state);
   } else {
       count += 1;
   }

} </syntaxhighlight>