教程 rust tutorial

错误处理 Option / Result

Rust 使用 Option 和 Result 类型来安全地处理可能失败或缺失的情况。

Option 类型

表示值存在 (Some) 或不存在 (None):

rust
let some_number = Some(5);
let no_number: Option<i32> = None;

if let Some(n) = some_number {
    println!("值是 {}", n);
} else {
    println!("没有值");
}

Result 类型

用于错误处理,包含 Ok 和 Err:

rust
fn divide(a: f64, b: f64) -> Result<f64, String> {
    if b == 0.0 {
        Err(String::from("除数不能为零"))
    } else {
        Ok(a / b)
    }
}

match divide(10.0, 2.0) {
    Ok(result) => println!("结果是 {}", result),
    Err(e) => println!("错误: {}", e),
}

代码演示

Rust Playground
打开运行
fn main() {
    let some_number = Some(5);
    let no_number: Option<i32> = None;
if let Some(n) = some_number {
    println!(&quot;值是 {}&quot;, n);
} else {
    println!(&quot;没有值&quot;);
}

fn divide(a: f64, b: f64) -&gt; Result&lt;f64, String&gt; {
    if b == 0.0 {
        Err(String::from(&quot;除数不能为零&quot;))
    } else {
        Ok(a / b)
    }
}

match divide(10.0, 2.0) {
    Ok(result) =&gt; println!(&quot;结果是 {}&quot;, result),
    Err(e) =&gt; println!(&quot;错误: {}&quot;, e),
}

}