以下是一个简单的 match 语句的例子:
fn main() {
let number = 42;
// 使用 match 匹配不同的情况
match number {
0 => println!("It's zero!"),
1 | 2 => println!("It's one or two!"),
3..=9 => println!("It's between 3 and 9, inclusive!"),
n if n % 2 == 0 => println!("It's an even number!"),
_ => println!("It's something else!"),
}
}
在上述例子中,我们使用 match 匹配了不同的情况:
- 当 number 为 0 时,执行第一个分支。
- 当 number 为 1 或 2 时,执行第二个分支。
- 当 number 在 3 到 9 的范围内时(包括 3 和 9),执行第三个分支。
- 当 number 为偶数时,执行第四个分支。这里使用了 if 进行额外的条件匹配。
- 如果 number 不匹配以上任何情况,执行 _ 分支,表示默认情况。
match 还支持对结构体、枚举等复杂数据类型进行模式匹配。下面是一个匹配枚举的例子:
// 定义一个名为 `Color` 的枚举
enum Color {
Red,
Green,
Blue,
}
fn main() {
let color = Color::Green;
// 使用 match 匹配枚举的不同变体
match color {
Color::Red => println!("It's red!"),
Color::Green => println!("It's green!"),
Color::Blue => println!("It's blue!"),
}
}
match 是 Rust 中强大的模式匹配工具,使得代码更具可读性和表达力。它在处理各种情况时能够提供清晰的逻辑,同时帮助编译器进行更强大的类型检查。
转载请注明出处:http://www.zyzy.cn/article/detail/6796/Rust