报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

Rust 1.22 将?操作符扩展到 Option 类型

  • 2017-11-26
  • 本文字数:710 字

    阅读完需:约 2 分钟

为了简化 Option 类型的处理,最新版本的 Rust 允许在 Option 类型上使用?操作符了。此外,该版本还改进了 macOS 版本编译器性能和调用栈。

操作符是 Rust 1.13 为简化 Result<T, E> 处理而引入的。之前,开发人员可以使用模式匹配或者try!操作符处理结果:

复制代码
let result = foo();
let mut result = match result {
Ok(val) => val,
Err(e) => return Err(e),
}
// 或者选用 try! 操作符
let mut result = try!(foo());

?操作符使下面这种简单许多的语法变得合法:

复制代码
let mut result = foo()?;
foo()?.bar()?.baz()?

类似的,开发人员现在可以使用下面的语法

复制代码
fn func_returning_option(...)
let val = func_returning_option(...)?

代替

复制代码
match func_returning_option(...) {
None => ... ,
Some(val) => ...
}

该版本对 Rust 语言语法的另外一项扩展是允许开发人员编写下面这样的代码:

复制代码
let mut x = 2;
let y = &8;
// 在 Rust 之前的版本中可以写成:x += *y
x += y;

该版本改进了libbacktrace库的 macOS 版本,提供了文件名和行号,之前只有macOS 上的调用栈上没有。这是通过使用 dladdr代替_NSGetExecutablePath实现的。

Rustdoc 新增了compile-fail测试,亦即,如果编译器无法编译特定的语句,测试就成功。例如,开发人员现在可以定义:

复制代码
/// ```compile_fail
/// let x = 5;
/// x += 2; // 不应该编译!
/// ```

Rustdoc 测试是为了保证文档中测试的即时性和正确性。

在工具方面,调试编译时间得到了改进,不过,Rust 团队没有提供有关这项改进的任何具体数值。

最后,Rust 1.22 将许多 API 固化了下来。要了解详细信息,请查看发布说明

查看英文原文 Rust 1.22 Extends the ? Operator to Option Types

2or to Option Types

2017-11-26 18:001503
用户头像

发布了 1008 篇内容, 共 408.4 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

从 WasmEdge 运行环境读写 Rust Wasm 应用的时序数据

Greptime 格睿科技

数据库 rust Wasm

Mysql tls 会话:再一次抓包之后,我认识到…

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟

集成学习方法——随机森林

小齐写代码

提炼大模型智慧,助力小模型成长

百度开发者中心

深度学习 模型

软件测试/测试开发丨持续集成体系介绍 学习笔记

测试人

软件测试 持续集成 CI/CD 测试开发

即时通讯技术文集(第29期):IM开发技术合集(Part2) [共18篇]

JackJiang

网络编程 即时通讯 IM

库克透露苹果已有接班人计划,或从这四人中诞生;谷歌创始人亲自给 Gemini 写代码丨 RTE 开发者日报 Vol.114

声网

密切关注2024年及以后的加密货币业务趋势

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

GitOps实践指南:GitOps能为我们带来什么?

阿里云大数据AI技术

如何判断Linux服务器是否被入侵了,该怎么对服务器进行安全加固

德迅云安全杨德俊

Linux 服务器安全 入侵检测

全面了解 Stable Diffusion API 调用教程

Liam

AI 前端 后端 API Stable Diffusion

软件测试/测试开发丨接口自动化测试-TCP与UDP的区别

测试人

软件测试 测试开发

专家观点∣数字化场景应用助力铁合金企业增产提效

用友BIP

冶金 提质增效

一文详解kube-apiserver认证鉴权能力

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

铭文质押挖矿系统

区块链技术

基于深度学习的工业缺陷检测详解——从0到1

月球背面

人工智能 缺陷检测 工业视觉 #技术人的2023总结

Rust 1.22将?操作符扩展到Option类型_语言 & 开发_Sergio De Simone_InfoQ精选文章