MST

星途 面试题库

面试题:Rust中Result类型的基本处理

请描述在Rust中如何使用`Result`类型来处理可能失败的操作。假设你有一个函数`divide`,它接收两个整数并返回它们相除的结果,如果除数为零则返回错误。请实现这个函数,并展示如何调用它并正确处理可能返回的`Result`。
17.3万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
    if b == 0 {
        Err("Division by zero is not allowed")
    } else {
        Ok(a / b)
    }
}

fn main() {
    let result1 = divide(10, 2);
    match result1 {
        Ok(result) => println!("The result is: {}", result),
        Err(error) => println!("Error: {}", error),
    }

    let result2 = divide(5, 0);
    match result2 {
        Ok(result) => println!("The result is: {}", result),
        Err(error) => println!("Error: {}", error),
    }
}
  1. 函数实现
    • divide函数接收两个i32类型的参数ab
    • 如果b为0,函数返回一个Err,携带一个静态字符串错误信息。
    • 如果b不为0,函数返回一个Ok,携带a / b的结果。
  2. 调用与处理
    • main函数中,调用divide函数两次。
    • 使用match表达式对返回的Result进行模式匹配。
    • 如果是Ok,则打印结果;如果是Err,则打印错误信息。