rust match如何處理函數(shù)返回值

小樊
81
2024-11-20 12:45:34
欄目: 編程語言

在Rust中,match語句主要用于處理枚舉類型。但是,如果你想根據(jù)函數(shù)返回值進(jìn)行匹配,可以使用模式匹配來解包返回值。這里有一個(gè)例子:

首先,定義一個(gè)枚舉類型,用于表示函數(shù)的返回值:

enum Result {
    Success(i32),
    Failure(String),
}

接下來,定義一個(gè)函數(shù),它返回Result枚舉類型:

fn calculate_result() -> Result {
    // 這里只是一個(gè)示例,實(shí)際實(shí)現(xiàn)可能會(huì)有所不同
    if rand::random::<bool>() {
        Result::Success(42)
    } else {
        Result::Failure("Error occurred".to_string())
    }
}

現(xiàn)在,你可以使用match語句根據(jù)函數(shù)返回值進(jìn)行匹配:

fn main() {
    let result = calculate_result();

    match result {
        Result::Success(value) => println!("Success! The value is: {}", value),
        Result::Failure(error) => println!("Failure! The error is: {}", error),
    }
}

在這個(gè)例子中,我們首先調(diào)用calculate_result()函數(shù),然后使用match語句根據(jù)返回的Result枚舉類型進(jìn)行匹配。如果返回值是Success,我們將打印出成功消息和值;如果返回值是Failure,我們將打印出失敗消息和錯(cuò)誤信息。

0