rust 中 match 表达式和 go 中 switch 有几分相似,但 rust 语言的无厘头性,让 math 有了更多的组合。
返璞归真
match 表达式的简单操作,case 分支流程,所有未匹配到条件都会走 _ 的流程,类似于 Go 语言 switch 中的 default 语句。例子中 live_type 的类型为有符号 32 位整形,case 条件就也很简单。
fn main() {let live_type: u32 = 1;match live_type {1 => {println!("感情片");},2 => println!("动作片"),_ => {println!("免费电影")}}
}
表达式 match 需要穷尽所有的可能性,否则编译无法通过:non-exhaustive patterns。match 表达式的通用模式,如果 expr 是一个语句块,表达式后面的逗号可以省略。
match value {pattern = expr, ...
}