Rust编程进阶:057、模式的不可反驳和可反驳

1、模式有两种:refutable(可反驳的)和 irrefutable(不可反驳的)。能匹配任何传递的可能值的模式被称为是不可反驳的。对值进行匹配可能会失败的模式被称为可反驳的。
2、只能接受不可反驳模式的有:函数、let语句、for循环。原因:因为通过不匹配的值程序无法进行有意义的工作。
3、if let和while let表达式被限制为只能接受可反驳的模式,因为它们的定义就是为了处理有可能失败的条件。
例子:

fn main() {
    // let a: Option<i32> = Some(5); //匹配Some(value), None
    // let b: Option<i32> = None; //匹配Some(value), None
    // let Some(x) = a;

    // if let Some(v) = a {
    if let v = 5 {
        println!("v {}", v);
    }
}

本节全部源代码:
https://github.com/anonymousGiga/learn_rust/blob/master/learn_pattern1/src/main.rs

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章