跳转至

if let

if let 是一个简单的控制流,它值关心一种匹配忽略其他匹配的情况。如下示例代码

fn main() {
    let v = Some(0u8);

    if let Some(3) = v {
        println!("three");
    }
}

在只关心一种控制流匹配值的情况下,使用 if let 代替 match 让我们编写更少的代码。也放弃了穷枚举的可能。我们可以把if let看作match的语法糖。也就是针对match的某一种特定模式,可以使用 if let来代替。if let还可以搭配else来使用,如下代码

fn main() {
    let v = Some(0u8);

    if let Some(3) = v {
        println!("three");
    } else {
        println!("others");
    }
}

如果我们使用 match 表达式来是实现,则写法如下

match v {
    Some(3) => println!("three"),
    _ => println!("others");
}