2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

2024中国新科技100强名单出炉!MIAOYUN荣获“2024云原生领航企业奖”

MIAOYUN

云计算 云原生 科技创新 新质生产力 新科技

智源研究院发布中文互联网语料库CCI3.0 推动数据共建共享

智源研究院

什么是自助服务门户?

ServiceDesk_Plus

IT服务 IT服务管理 自助服务

企业如何通过ETL工具实现主数据的同步

谷云科技RestCloud

数据处理 ETL 主数据 企业数据

Windows 10 version 22H2 (updated Sep 2024) 中文版、英文版下载

sysin

windows 10

Windows 11 version 23H2 中文版、英文版 (x64、ARM64) 下载 (updated Sep 2024)

sysin

windows 11

深度解析拍立淘API:揭秘卖家与店铺数据的全面掌控

代码忍者

API 测试 pinduoduo API

Windows 10 on ARM, version 22H2 (updated Sep 2024) ARM64 AArch64 中文版、英文版下载

sysin

windows arm 10

MacOS上的触控板和鼠标增强工具:Middle

Rose

Chain Timer for mac(计时器软件)v10.4激活版

Rose

iBarcoder for Mac(条形码生成工具)v3.15.10中文激活版

Rose

TON生态系统开发指南:从零开始构建你的Web3应用

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 代币开发

人工智能 | 手工测试用例转Web自动化测试生成

测吧(北京)科技有限公司

测试

打造数据平台:Cloudera下载安装全流程!

敏捷调度TASKCTL

hadoop cloudera 大数据运维 CDH 大数据 Hadoop

阿里巴巴商品详情API返回值中的1688商品标签与关键词:深度解析与应用

代码忍者

API 测试 pinduoduo API

“AI+Security”系列第3期(四):360安全大模型业务实践

云起无垠

解锁境外旅行新姿势,四个小tips助你玩转国庆假期

最新动态

Vellum for Mac:优秀的电子书生成工具

Rose

Keep It for mac高效率笔记办公软件

Rose

macOS 15 Blank OVF - macOS Sequoia 虚拟化解决方案

sysin

macos 虚拟化 sequoia ovf

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