推荐答案
let x = 5; match x { 1 => println!("One"), 2 | 3 => println!("Two or Three"), 4..=6 => println!("Four to Six"), _ => println!("Other"), }
本题详细解读
1. match
表达式的基本用法
match
是 Rust 中用于模式匹配的关键字,它允许你根据一个值的不同模式执行不同的代码块。match
表达式的基本结构如下:
match value { pattern1 => expression1, pattern2 => expression2, _ => default_expression, }
value
是要匹配的值。pattern
是匹配的模式,可以是字面量、变量、范围、结构体等。expression
是匹配成功后执行的代码块。_
是通配符,表示匹配所有其他情况。
2. 模式匹配的多样性
Rust 的 match
表达式支持多种模式匹配方式:
- 字面量匹配:直接匹配具体的值,如
1 => println!("One")
。 - 多值匹配:使用
|
匹配多个值,如2 | 3 => println!("Two or Three")
。 - 范围匹配:使用
..=
匹配一个范围内的值,如4..=6 => println!("Four to Six")
。 - 通配符匹配:使用
_
匹配所有其他情况,如_ => println!("Other")
。
3. match
表达式的穷尽性
Rust 要求 match
表达式必须覆盖所有可能的情况,否则编译器会报错。使用 _
通配符可以确保所有情况都被处理。
4. match
表达式的返回值
match
表达式本身也是一个表达式,它会返回匹配到的分支的最后一个表达式的值。例如:
let result = match x { 1 => "One", 2 => "Two", _ => "Other", };
在这个例子中,result
的值将根据 x
的值被赋为 "One"
、"Two"
或 "Other"
。