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

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

关注

评论

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

数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比

阿里云数据库开源

Altair携手奇瑞汽车,荣获2024世界人工智能大会“AI赋能新型工业化创新应用优秀案例”

Altair RapidMiner

人工智能 AI 仿真 世界人工智能大会 altair

超全!GitHub星标6500的Python入门教程大全,太强了!

我再BUG界嘎嘎乱杀

Python 后端 入门 开发语言 零基础

企业智能之旅(1): 建立智能企业的战略蓝图并付诸行动

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 生成式AI

DDoS 攻击再破记录,欧洲最大云服务商OVHcloud甩锅Mikrotik

网络安全服务

云服务 云安全 DDoS 黑客攻击 DDoS 攻击

融云入驻首个数字生态出海基地,加速构建数字经济出海创新生态

融云 RongCloud

Python中的7种基础数据类型,看这4500字就够了!

我再BUG界嘎嘎乱杀

Python 后端 基础 数据类型 开发语言

半小时速通Python爬虫!GitHub开源的Python爬虫入门教程

我再BUG界嘎嘎乱杀

Python 爬虫 入门 开发语言 零基础

企业智能之路(2): 着手进行企业智能的技术准备和实践

亚马逊云科技 (Amazon Web Services)

亚马逊云科技 生成式AI

前后端数据传输约定探讨

京东科技开发者

数字化时代的数据管理:多样化数据库选型指南

京东科技开发者

使用mybatis切片实现数据权限控制

京东科技开发者

低代码研发项目管理流程优化:提效与创新的双重驱动

不在线第一只蜗牛

低代码 项目开发

IoTDB 社区出品|CommunityOverCode Asia 2024 专题介绍之 IoT

Apache IoTDB

英伟达开源 RTX Remix 技术,用 AI 重制经典游戏;Luma 发布首尾帧功能可快速补全视频丨 RTE 开发者日报

声网

淘宝天猫商品评论API接口:用户反馈实时分析,驱动电商增长

技术冰糖葫芦

API Explorer API 调试 API 文档 API 协议

面向工业互联网的低代码开发平台研究

快乐非自愿限量之名

低代码

面试官:Java线程可以无限创建吗?

EquatorCoco

Java 面试

IoTDB 社区出品|CommunityOverCode Asia 2024 专题介绍之 IoT

Apache IoTDB

通过引入火山引擎“数据飞轮”,头部美图类APP找到下一个增长点

新消费日报

一文读懂!10款办公必备的AI合成PPT软件盘点!

彭宏豪95

人工智能 在线白板 办公软件 AIGC AI生成PPT

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