3. match 与穷尽性

match 按模式分派。编译器检查穷尽性:漏了分支会报错,并告诉你漏了哪个。

fn sign(x: Int) -> String =
  match x {
    0 -> "zero"
    n if n > 0 -> "positive"
    _ -> "negative"
  }

pub fn main() -> Unit !io = {
  println(sign(0))
  println(sign(7))
  println(sign(-2))
}
在 Playground 打开
zero
positive
negative