QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

使用海外原生IP有什么好处

Ogcloud

静态IP 海外原生IP 原生IP

Web安全知识记录

天翼云开发者社区

网络安全 Web

容器、容器云和容器化PaaS平台之间到底是什么关系?

天翼云开发者社区

云计算 容器服务

1400+自定义ps形状集合

Rose

e3d插件下载 - Video Copilot Element 3D for mac-AE三维模型插件

Rose

直接导入编辑MKV/MOV/FLV格式素材视频解码器AE/PR插件Influx

Rose

这AI队友哪智障了?这AI队友可太棒了!| 《易点新的》专访

网易伏羲

游戏AI

软件测试学习笔记丨Vue学习笔记-基本介绍

测试人

软件测试

活动回顾|体验技术大会暨OpenTiny技术交流茶话会圆满结束~

OpenTiny社区

web开发 OpenTiny TinyVue TinyEngine 前端开源

FilmUnlimited PowerGrades(柯达胶片模拟电影预设)

Rose

【认证有奖】邀友“亿”起体验流量之旅

荣耀开发者服务平台

开发者激励 AIGC 奖励分红 开发者活动 应用市场

手把手教你编写自定义Categraf插件

天翼云开发者社区

Categraf

软件测试学习笔记丨Vue常用指令-条件渲染(v-if)

测试人

软件测试

覆盖80%业务场景,原生鸿蒙出行、教育行业样板间专区上线

最新动态

淘宝详情API接口全解析:如何获取与应用

代码忍者

API 接口 pinduoduo API

中文汉化 AE/PR去朦胧除雾霾调色插件 ClearPlus

Rose

英伟达力推生命科学,背后分子动力学价值远被低估

新消费日报

软件测试学习笔记丨Vue常用指令-输入绑定(v-model)

测试人

软件测试

化学ppt课件怎么做?这个在线ppt工具不容错过!

职场工具箱

效率工具 职场 PPT AIGC AI生成PPT

Plugin Alliance Brainworx bx_limiter True Peak(峰值限制器)

Rose

Midjourney-未来机甲

AIGC.TWang

未来世界 AI绘画 MidJourney

如何选择合适的TikTok网络节点

Ogcloud

代理IP tiktok运营 TikTok养号 tiktok节点 tiktok网络

什么是数字化战略?数字化转型战略指南

积木链小链

数字化转型 数字化

一文彻底弄懂Spring IOC 依赖注入

不在线第一只蜗牛

spring

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