面试题答案
一键面试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)
}
}