分类

Rust match 中的坑

2019-04-29 15:04 rust

Rust 的 match 模式匹配, 可以很方便地匹配多种情况, 类似于 C 语言中的 switch 语句. 但是, 如果要匹配数字范围时, 需要这样写:

match n {
  1 => {
    println!("One");
  }

  2 | 3 | 5 | 7 => {
    println!("Prime");
  }

  11...19 => {
    println!("Teens");
  }

  _ => {
    println!("Ain't prime");
  }
}

这里要用 11...19 来指定 11~19 这个范围.

而在 for in 语法中, 表达类似的语义, 需要使用 11..19 这种写法:

for i in 11..19 {
  println!("Teens");
}

同时存在这两种写法, 会让开发者更混乱, 相当不协调.