写点什么

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:001736
用户头像

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

关注

评论

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

【漫画】云通信企业公众号,打造私域流量的利器

阿里云Edge Plus

云通信

软件的本质与设计原则

dony.zhang

透过本质和发展看编程

拈香(曾德政)

架构师 面向对象设计 极客大学架构师训练营 面向对象设计原则

架构师训练营第二周命题作业

hifly

设计模式 极客大学架构师训练营 UML 依赖倒置原则 接口隔离原则

架构师训练营 Week02 学习心得

极客大学架构师训练营

7-ELEVEn工作法

wujunmin

管理 零售

架构师训练营第二周学习总结

王鑫龙

极客大学架构师训练营

第 02 周学习总结

夏秋

第 02 周作业

夏秋

极客大学架构师训练营

作业

chenzt

架构师训练营2 ——框架设计

默默

银行业数据治理之「数据资产管理」

数据司令

大数据 数据仓库 金融科技 数据治理 数据资产

视频豪横时代,应用如何快速构建视频点播能力?

阿里云Edge Plus

音视频 CDN 直播 点播

架构师训练营第二周学习总结

whiter

极客大学架构师训练营

架构师训练营——第二周总结

jiangnanage

week2作业

慢慢来的比较快

第二周作业

极客大学架构师训练营

架构师训练营第二周作业

Jerry Tse

极客大学架构师训练营 作业

0期架构Week2作业1

Nan Jiang

DIP和SIP的理解和学习

拈香(曾德政)

极客大学架构师训练营 面向对象设计原则 DIP 设计原则 SIP

架构师训练营第二周命题作业

兔狲

作业

第2周作业

娄江国

极客大学架构师训练营

第2周总结

娄江国

极客大学架构师训练营

你不会还不懂依赖倒置吧?赶紧来看看

hellohuan

设计模式 极客大学架构师训练营 设计原则

设计一个软件框架的关键点

dony.zhang

江帅帅:精通 Spring Boot 系列 05

奈学教育

Spring Boot

【架构师第二周作业】依赖倒置

浪浪

江帅帅:精通 Spring Boot 系列 05

古月木易

Spring Boot

聊聊面向对象的设计(OOD)原则

Jerry Tse

极客大学架构师训练营 作业

0期架构Week2作业2

Nan Jiang

设计原则

GalaxyCreater

架构

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