| # match |
| |
| Rust provides pattern matching via the `match` keyword, which can be used like |
| a C `switch`. The first matching arm is evaluated and all possible values must be |
| covered. |
| |
| ```rust,editable |
| fn main() { |
| let number = 13; |
| // TODO ^ Try different values for `number` |
| |
| println!("Tell me about {}", number); |
| match number { |
| // Match a single value |
| 1 => println!("One!"), |
| // Match several values |
| 2 | 3 | 5 | 7 | 11 => println!("This is a prime"), |
| // TODO ^ Try adding 13 to the list of prime values |
| // Match an inclusive range |
| 13..=19 => println!("A teen"), |
| // Handle the rest of cases |
| _ => println!("Ain't special"), |
| // TODO ^ Try commenting out this catch-all arm |
| } |
| |
| let boolean = true; |
| // Match is an expression too |
| let binary = match boolean { |
| // The arms of a match must cover all the possible values |
| false => 0, |
| true => 1, |
| // TODO ^ Try commenting out one of these arms |
| }; |
| |
| println!("{} -> {}", boolean, binary); |
| } |
| ``` |