写点什么

Rust 1.21 发布,改进语法和对工具的支持

  • 2017-10-23
  • 本文字数:742 字

    阅读完需:约 2 分钟

Rust 团队刚刚发布了 Rust 1.21 ,带来更灵活的字面量语言特性、更稳定的库,并改进了对工具的支持。

新的语言特性允许将保存在静态内存里的字面量提升为值,这样就可以安全地传递引用。下面的代码现在是合法的:

复制代码
let x: &'static u32 = &5;
thread::spawn(move || {
println!("{}", x);
});

在上一个版本的 Rust 中,上面的代码无法通过编译,因为线程块里的变量 x 引用了字面量 5,5 是保存在栈上的,在线程块函数退出之后就会消失。为了扩展字面量的生存周期,Rust 1.21 的编译器将上述的代码转译成如下的形式:

复制代码
static FIVE: i32 = 5;
let x = &FIVE;

编译器现在可以在进行转译的同时运行 LLVM,所以使用的内存更少了。这样有两个好处:转译和 LLVM 可以同时进行,而且主线程可以在这两者之间切换。另外, rustup 现在支持通过“rustup component add rls-preview”的方式来安装 Rust 语言服务器(RLS)。根据 Rust 团队成员所述,这是安装 Rust 工具的第一步,其中包含了 RLS、Clippy 和 rustfmt,在 Rust 稳定版中就可以正常运行。

在库稳定性方面,现在可以使用 Iterator::for_each 代替 for 循环,如:

复制代码
// 旧代码
for i in 0..10 {
println!("{}", i);
}
// 新代码
(0..10).for_each(|i| println!("{}", i));

这样可以很容易地把多个迭代器串联在一起,如:

复制代码
(0..100)
.map(|x| x + 1)
.filter(|x| x % 2 == 0)
.for_each(|i| println!("{}", i));

另外, Ord 有序集合)的max 和min 函数现在很稳定了。Rc和Arc提供了更友好的接口,包括From<&[T]> where T: Clone、From、From、From<Box > where T: ?Sized 以及 From<Vec>。

可以通过运行 rustup update stable 获取最新的 Rust,更多细节可以参考 Rust 1.21 发布说明

查看英文原文 Rust 1.21 Improves Language Syntax and Tooling

2017-10-23 19:001478
用户头像

发布了 322 篇内容, 共 147.0 次阅读, 收获喜欢 148 次。

关注

评论

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

玩转云端| 天翼云数据加密,护航企业数据安全

天翼云开发者社区

[原生1v1视频源码]社交市场趋于饱和,出海成为1v1语聊平台的新选择

山东布谷科技胡月

社交APP出海 视频社交APP开发 1v1交友app开发 一对一视频语音系统搭建

喜讯!云起无垠获评“2022中国科创好公司”

云起无垠

网络安全 Fuzzing 2022中国科创好公司

我的2022

劼哥stone

2022年终总结

在农业银行做开发是什么样的体验?

程序员大彬

Java 开发

数据湖(二十):Flink兼容Iceberg目前不足和Iceberg与Hudi对比

Lansonli

数据湖

Pipy 实现 SOCKS 代理

Flomesh

HTTP Service Mesh 服务网格 Pipy 流量管理

天翼云位居中国私有云市场领导者象限

天翼云开发者社区

BI 可视化工具不只有视图,还有报表

搞大屏的小北

数据可视化工具 DataEase

dcm4che 解析 修改 保存 dicom文件

JefferLiu

为什么数字化转型需要“低代码”?

元年技术洞察

DevOps 低代码 数字化转型 低代码平台

1 📖 《JavaScript高级程序设计》__ 什么是JavaScript?

HoMeTown

JavaScript #读书 前端‘’

头号玩家!天翼云蝉联专属云服务市场榜首

天翼云开发者社区

1分钟带你学会MySQL覆盖索引,让你的SQL更高效

程序员拾山

MySQL 索引 覆盖索引

Disney 流媒体广告 Flink 的应用实践

Apache Flink

大数据 flink 实时计算

使用 NineData 实现备份集的实时查询

NineData

数据库 数据 NineData 备份集 实时备份

CAP定理

threedayman

分布式 架构设计 java; 基础

云上的米开朗基罗:在不确定时代,寻找建筑般的确定性

脑极体

Date & Time组件(下)

芯动大师

datepicker timepicker calendarview

《编程的原则》读书笔记(四):七个设计原则

Chares

软件工程 软件开发 编程原理 软件开发原则

响应式流的核心机制——背压机制

老周聊架构

响应式编程

工信部电子标准院授予阿里巴巴9个开源项目“优秀”评级

云布道师

阿里云

重磅!持续应用安全(CAS)白皮书发布,云起无垠入选

云起无垠

Fuzzing CAS白皮书

数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表

Lansonli

数据湖

华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!

HarmonyOS SDK

HMS Core

“低代码+PaaS”的技术创新实践

元年技术洞察

方舟 低代码 数字化转型 低代码平台

2023年1月中国数据库排行榜:OceanBase 持续两月登顶,前四甲青云直上开新局

墨天轮

数据库 opengauss tdsql 国产数据库 polarDB

软件测试/测试开发 | 服务端接口自动化测试, Requests 库的这些功能你了解吗?

测试人

软件测试 自动化测试 接口测试 测试开发 requests

打造数字海南,中国电信天翼云赋能海南自贸港智慧发展!

天翼云开发者社区

ElasticSearch必知必会-进阶篇

京东科技开发者

ES 集群 索引技术 Elastic Search 企业号 1 月 PK 榜

2 📖 《JavaScript高级程序设计》__ HTML中的JavaScript

HoMeTown

JavaScript 前端 读书 js

Rust 1.21发布,改进语法和对工具的支持_语言 & 开发_Sergio De Simone_InfoQ精选文章