Rust 学习之 Some、Option、Result

Some、Option、Result

最近学习 Rust 时对它的所有权,借用等概念,包括语法之类的都还算好理解,但碰到 Some、Option、Result 这些,包括语句后面的 ? 号等等着实困惑了一把,不过经过各种资料的翻阅,总算是理解这几样东西的用法及存在的意义,在这里记录一下。

Option

严格的来说,只有 Option 和 Result,Some 只是 Option 的一个值包装类型。

我们先来描述一个普通的场景,在很多语言中,获取一个数据可能会返回 null 也可能会没有数据,拿 java 举个例:

User user = model.getUser();

if (user == null) {
   
    throw new Exception("用户不存在")
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rust语言中,`Some()`是一个Option枚举类型的变体,用于表示一个可能存在的值。Option类型是Rust中处理可能为空的值的一种方式。`Some()`用于包装一个具体的值,表示这个值存在。例如,可以使用`Some(10)`来表示一个存在值为10的Option类型的变量。\[1\] 在Rust中,使用`Some()`通常与`match`语句一起使用,用于匹配Option类型的值并执行相应的操作。例如,可以使用`match`语句来匹配`Some(3)`并执行相应的代码块,如果不匹配则执行下划线(`_`)分支的代码块。\[1\] 总之,`Some()`在Rust语言中用于表示一个存在的值,并且通常与`match`语句一起使用来处理Option类型的值。\[1\] #### 引用[.reference_title] - *1* [Rust中的关键字SomeOption](https://blog.csdn.net/inthat/article/details/118995264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [网红编程语言Rust到底是个什么鬼?](https://blog.csdn.net/oSuiYing12/article/details/106844271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值