match 表达式
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 1 课,共 66 课。
match 表达式是 Rust 中强大的模式匹配工具,可以让你将一个值与不同模式进行比较,并根据匹配的模式运行代码。你可以把它看作更高级的 if 语句,能够优雅地处理多个条件。
这是 match 表达式的基本语法:
match value {
pattern1 => code_to_run,
pattern2 => code_to_run,
_ => default_code,
}match 中的每一行都称为一个“分支”。=> 用来分隔模式和模式匹配时运行的代码。下划线 _ 是一种特殊的通配模式,可以匹配任何内容,就像一个“兜底”模式,用于匹配不符合其他模式的任何值。
这是一个检查数字的简单示例:
let number = 2;
match number {
1 => println!("One"),
2 => println!("Two"),
_ => println!("Other"),
}在 Rust 中,match 表达式必须是穷尽的,也就是说,必须处理所有可能的值。这就是通配符 _ 如此重要的原因,它能确保你覆盖了所有未明确匹配的情况。
挑战
简单编写一个函数 describe_number,它接收 num,并根据数字的值返回字符串描述。
使用 match 表达式,根据不同的数字返回不同的描述。
条件:
- 如果
num是0,返回"zero" - 如果
num是1,返回"one" - 如果
num是2,返回"two" - 如果
num是3,返回"three" - 对于任何其他数字,返回
"many"
参数:
num(i32):要描述的数字
返回值:数字的字符串描述(String)
亲手试试
fn describe_number(num: i32) -> String {
// 在这里编写代码
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Rust 在线编译器