Menu
CoddyTech

匹配多个值

本课属于 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”,如果值匹配由 | 分隔的任意模式,就会执行对应的分支。这样写比使用多个执行相同操作的分支简洁得多。

challenge icon

挑战

简单

你会收到一个表示星期几的数字(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 表达式和 | 运算符编写代码
    
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Rust 在线编译器