Rust 中的 Option、Result 和 ? 运算符

Option类型

在编程中,我们经常会遇到某个值或者某个数据域可能存在,可能不存在;如果存在,它才会包含某个值。在C/C++ 中,一般会使用 NULL 表示不存在这种情况,而 NULL 是很多异常和安全的祸根。Rust 从语言层面就删除了对 NULL 的支持,并在标准库中引入 Option 类型,用于表示上述那种可能存在可能不存在的情况。

Option 类型定义如下,它包含在 prelude 中,可以直接引用。

pub enum Option<T> {
    None,
    Some(T),
}

Result 类型

一个功能、服务的执行结果分为2类:(1)执行成功,返回执行结果;(2)执行失败,返回失败原因。在传统编程语言中,一般使用同一类型的返回值表示这两类结果,这会容易出现混淆。Rust 标准库引入 Result 类型,它是一个 enum 类型,用不同的枚举值类型表示两类结果。同时,基于Rust enum 类型的优点,将执行结果和失败原因包含在其中。借助特定声明式标记#[must_use] ,在代码没有处理这个结果时,给出编译警告,提供程序员优化代码。

Result 类型定义如下,它包含在 prelude 中,可以直接应用。

enum Result<T, E> {
   Ok(T),
   Er
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值