匹配多个值
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 2 课,共 66 课。
有时,你需要匹配多个不同的值,并让它们都触发相同的代码。Rust 允许你在一个分支中使用 |(或)运算符合并多个模式,这样就不用为每个值单独编写分支了。
下面介绍如何在一个分支中匹配多个值:
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}| 运算符的作用类似于英语中的“OR”,如果值匹配由 | 分隔的任意模式,就会执行对应的分支。这样写比使用多个执行相同操作的分支简洁得多。
挑战
简单你会收到一个表示星期几的数字(1-7)作为输入。读取输入,将其转换为整数,然后使用带有 match 表达式和 | 运算符,打印它是工作日还是周末。
要求:
- 如果数字是
1、2、3、4或5,打印"Weekday" - 如果数字是
6或7,打印"Weekend" - 如果是其他数字,打印
"Invalid day"
输入:一个表示星期几的整数
输出:打印 "Weekday"、"Weekend" 或 "Invalid day"
亲手试试
use std::io;
fn main() {
// 读取输入
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO:在下方使用 match 表达式和 | 运算符编写代码
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Rust 在线编译器