Rust 模式匹配简介
模式匹配是 Rust 中一种强大的功能,用于从表达式中提取值。expand_more它类似于其他语言中的 switch 语句,但功能更强大且更灵活。expand_more
模式匹配的基本语法如下:
Rust
match expression {
pattern1 => expression1
pattern2 => expression2
...
_ => expression_default
}
请谨慎使用代码。
content_copy
其中:
expression是要匹配的表达式。pattern1、pattern2等是模式。expression1、expression2等是与相应模式匹配成功时执行的表达式。_是默认模式,用于匹配所有其他情况。
模式可以很簡單,也可以很复杂。它们可以匹配基本值、复合值、甚至函数调用。
以下是一些模式匹配的示例:
匹配基本值
Rust
let x = 5;
match x {
1 => println!("x is 1"),
2 => println!("x is 2"),
_ => println!("x is something else"),
}
请谨慎使用代码。
content_copy
此代码将打印 x is 5,因为 x 的值与模式 5 匹配。
匹配复合值
Rust
let point = (10, 20);
match point {
(x, y) => println!("x is {}, y is {}", x, y),
}
请谨慎使用代码。
content_copy
此代码将打印 x is 10, y is 20,因为 point 的值与模式 (x, y) 匹配。模式 (x, y) 将 point 解构为两个变量 x 和 y。
匹配函数调用
Rust
let s = "hello";
match s.len() {
0 => println!("s is empty"),
5 => println!("s has 5 characters"),
_ => println!("s has {} characters", s.len()),
}
请谨慎使用代码。
content_copy
此代码将打印 s has 5 characters,因为 s.len() 的值与模式 5 匹配。模式 5 匹配函数调用的返回值。