match 匹配

Rust 通过 match 关键字来提供模式匹配,和 C 语言的 switch 用法类似。第一个匹配分支会被比对,并且所有可能的值都必须被覆盖。

  1. fn main() {
  2. let number = 13;
  3. // 试一试 ^ 将不同的值赋给 `number`
  4. println!("Tell me about {}", number);
  5. match number {
  6. // 匹配单个值
  7. 1 => println!("One!"),
  8. // 匹配多个值
  9. 2 | 3 | 5 | 7 | 11 => println!("This is a prime"),
  10. // 试一试 ^ 将 13 添加到质数列表中
  11. // 匹配一个闭区间范围
  12. 13..=19 => println!("A teen"),
  13. // 处理其他情况
  14. _ => println!("Ain't special"),
  15. // 试一试 ^ 注释掉这个总括性的分支
  16. }
  17. let boolean = true;
  18. // match 也是一个表达式
  19. let binary = match boolean {
  20. // match 分支必须覆盖所有可能的值
  21. false => 0,
  22. true => 1,
  23. // 试一试 ^ 将其中一条分支注释掉
  24. };
  25. println!("{} -> {}", boolean, binary);
  26. }