"if let" 和 "if" 有什么区别吗?

4

代码:

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" ?
1个回答

8

使用 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
}

(游乐场)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接