MST

星途 面试题库

面试题:Rust中Option与Result的基础使用

请描述在Rust中,Option和Result类型分别适用于什么场景?并编写一个简单的函数,该函数接收一个整数,如果这个整数是偶数,返回一个包含该整数平方的Option值,如果是奇数,返回None;再编写另一个函数,该函数接收两个整数进行除法运算,使用Result类型来处理可能的除零错误。
32.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

Option类型适用场景

Option类型主要用于处理值可能不存在的情况。比如在查找元素时,元素可能在集合中不存在,此时返回Option类型就可以优雅地表示这种不确定性,Some(T)表示存在值,None表示值不存在。

Result类型适用场景

Result类型主要用于处理可能会出现错误的操作。比如文件读取、网络请求等操作,这些操作可能会因为各种原因失败,Result类型通过Ok(T)表示操作成功并返回结果,Err(E)表示操作失败并返回错误信息。

代码示例

// 如果整数是偶数,返回其平方的Option值,否则返回None
fn square_if_even(num: i32) -> Option<i32> {
    if num % 2 == 0 {
        Some(num * num)
    } else {
        None
    }
}

// 两个整数相除,使用Result类型处理除零错误
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
    if b == 0 {
        Err("Division by zero")
    } else {
        Ok(a / b)
    }
}