"if let" 和 "if" 有区别吗?
Is there a difference between "if let" and "if"?
代码:
let x = Some(3);
if x == Some(3) {
println!("if case");
}
if let Some(3) = x {
println!("if let case");
}
结果:
if case
if let case
为什么 Rust 程序员使用 "if let"?
有了if let
,你可以使用模式匹配将x
分解成几个部分:
let x = Some(3);
if let Some(v) = x {
println!("{}", v); // prints 3
}
同理if
不雅:
let x = Some(3);
if x.is_some() {
println!("{}", x.unwrap()); // not recommended
}
代码:
let x = Some(3);
if x == Some(3) {
println!("if case");
}
if let Some(3) = x {
println!("if let case");
}
结果:
if case
if let case
为什么 Rust 程序员使用 "if let"?
有了if let
,你可以使用模式匹配将x
分解成几个部分:
let x = Some(3);
if let Some(v) = x {
println!("{}", v); // prints 3
}
同理if
不雅:
let x = Some(3);
if x.is_some() {
println!("{}", x.unwrap()); // not recommended
}