【Rust】match 匹配


環境

  • Rust 1.56.1
  • VSCode 1.61.2

概念

參考:https://doc.rust-lang.org/stable/rust-by-example/flow_control/match.html

Rust 使用 match 關鍵字來進行模式匹配,有點像 C 語言中的 switch。所有可能的分支都需要被覆蓋,只會匹配到第一個滿足條件的。

示例

匹配單個值

fn main() {
    let number = 1;
    match number {
        // 匹配單個值
        1 => println!("One!"),
        // 要覆蓋所有的可能分支,不然有編譯錯誤
        _ => println!("Ain't special"),
    }
}

匹配多個值

fn main() {
    let number = 7;
    match number {
        // 匹配多個值
        2 | 3 | 5 | 7 | 11 => println!("This is a prime"),
        // 要覆蓋所有的可能分支,不然有編譯錯誤
        _ => println!("Ain't special"),
    }
}

匹配區間

fn main() {
    let number = 13;
    match number {
        // 匹配區間
        13..=19 => println!("A teen"),
        // 要覆蓋所有的可能分支,不然有編譯錯誤
        _ => println!("Ain't special"),
    }
}

第一個匹配

fn main() {
    let number = 13;
    match number {
        // 只有第一個匹配的才會執行,后面的不會
        7 | 11 | 13 => println!("This is a prime"),
        13..=19 => println!("A teen"),
        _ => println!("Ain't special"),
    }
}

返回值

fn main() {
    let boolean = true;
    // match 是一個表達式,也可以返回值
    let binary = match boolean {
        false => 0,
        true => 1,
    };
    println!("{} -> {}", boolean, binary);
}

總結

了解了 Rust 中的 match 關鍵字,用來進行模式匹配,和其它語言的 switch 類似。

附錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM