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

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

关注

评论

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

ETLCloud CDC中如何监听多表?

谷云科技RestCloud

数据库 数据处理 ETL CDC 数据集成工具

HarmonyOS多设备开发方案全新升级,赋能全场景高效开发

最新动态

《仿盒马》app开发技术分享-- 商品详情页(10)

鸿蒙小林

《仿盒马》app开发技术分享-- 购物车功能完善(14)

鸿蒙小林

BOE(京东方)携手合作伙伴定义下一代电竞显示趋势 借势核聚变嘉年华构建产业生态闭环

爱极客侠

什么是即席查询?企业数据敏捷分析的新范式

镜舟科技

数据分析 存算分离架构 StarRocks 即席查询 OLAP 引擎

Golang基础笔记七之指针,值类型和引用类型

Hunter熊

Go 指针 逃逸分析 引用类型 内存逃逸

实战拆解:阿里云 ESA 重构金融行业的安全与速度

阿里云CloudImagine

云计算 最佳实践 边缘计算 安全防护 ESA

生而非凡,稳健流畅,HarmonyOS体验再升级

最新动态

语音能否彻底取代键盘?Wispr Flow 融资 3000 万美金背后的思考丨Voice Agent 学习笔记

RTE开发者社区

《仿盒马》app开发技术分享-- 自定义标题栏&商品详情初探(9)

鸿蒙小林

《仿盒马》app开发技术分享-- 分类模块顶部导航列表(15)

鸿蒙小林

缓存之美:Guava Cache 相比于 Caffeine 差在哪里?

京东科技开发者

【HarmonyOS 5】鸿蒙TEE(可信执行环境)详解

GeorgeGcs

​《仿盒马》app开发技术分享-- 新人专享券(2)

鸿蒙小林

HarmonyOS NEXT

《仿盒马》app开发技术分享-- 金刚区(3)

鸿蒙小林

从0到亿级数据抓取:亮数据如何破解全球采集难题?

阿Q说代码

数据挖掘 数据采集 亮数据

《仿盒马》app开发技术分享-- 首页模块配置(4)

鸿蒙小林

HarmonyOS NEXT

《仿盒马》app开发技术分享-- 首页活动配置(5)

鸿蒙小林

HarmonyOS NEXT

《仿盒马》app开发技术分享-- 加入购物车&加购列表展示(12)

鸿蒙小林

手滑救星!通知中心一秒即达,这次真的“滑”得漂亮!

HarmonyOS SDK

harmoyos

《仿盒马》app开发技术分享-- 首页地址选择&会员码(8)

鸿蒙小林

《仿盒马》app开发技术分享-- 商品规格弹窗(11)

鸿蒙小林

高性能缓存设计:如何解决缓存伪共享问题

京东科技开发者

【7 月 5 日北京】倒计时 5 天!原来 IoTDB 用户大会有这么多现场福利

Apache IoTDB

《仿盒马》app开发技术分享-- 首页商品流(7)

鸿蒙小林

华为JDC登场!观测云带来下一代监控观测平台的AI实战解法

观测云

人工智能

懒懒笔记 | 课代表带你梳理【RAG课程 17&18:企业级安全 + 多智能体协同,打造可控、智能的RAG系统】

商汤万象开发者

AI agent LLM llama

Meta 拟收购语音 AI 初创 PlayAI;Qwen-TTS API 正式上线,支持京沪川方言丨日报

RTE开发者社区

《仿盒马》app开发技术分享-- 首页banner(6)

鸿蒙小林

《仿盒马》app开发技术分享-- 购物车基础功能实现(13)

鸿蒙小林

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