1.
匹配是在 rust 中很强的东西,可以匹配所有类型
=> 后面跟的是表达式,不能是语句
fn main() {
match_test(13);
match_test(5);
match_test(16);
match_test(23);
}
fn match_test(num: u8){
match num {
13 => println!("正确"),
3|4|5|6 => println!("3 或 4 或 5 或 6" ),
14...20 => println!("14..20"),
_=> println!("不正确"),
}
}
2.解构
match 中可以应用解构
//元组
let pair = (0, -2);
match pair {
(0, y) => println!("y={}", y),
(x, 0) => println!("x={}", x),
_ => println!("default")
}
同样可以作用于结构体,指针,枚举
3,可以加上 if 来守卫
match num {
x if x != 20 => println!("14..20"),
_=> println!("不正确"),
}
4,绑定变量
match num {
13 => println!("正确"),
3|4|5|6 => println!("3 或 4 或 5 或 6" ),
n @ 14...20 => println!("{}", n),
_=> println!("不正确"),
}
5 进阶,let if
如果只需要匹配中的一个,可以用 if let 表达式
if let 12== n {
语句
}
6 进阶 while let
如果想要在循环中使用匹配,可以使用 while let
while let n {
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于