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

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