HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

基于Java开发的neo4j知识图谱、elasticsearch全文检索的数字知识库

金陵老街

华为云CodeArts Check代码检查服务用户声音反馈集锦(7)

华为云PaaS服务小智

云计算 软件开发 华为云 代码检查

GitHub上标星23K+的Redis进阶笔记(应用+原理+集群+拓展+源码)

小小怪下士

Java redis 程序员 java面试

FTP加速小技巧 | 这个工具居然能百倍加速FTP?

镭速

ftp ftp传输 ftp加速

基于Java开发的数字化询价招标采购系统(SRM系统源码)

金陵老街

spring-boot

美国2009年开始入侵华为总部服务器;马斯克脑机公司将进行首次人体试验;全球首个5G卫星电话拨通丨RTE开发者日报 Vol.54

声网

软件定义汽车时代,1 亿行代码的安全保障,极狐GitLab 这么做!

极狐GitLab

gitlab 安全 DevSecOps 汽车 安全左移

成功入选 2023 谷歌出海创业加速器,Tapdata 乘势远航

tapdata

数据采集 数据集成 Tapdata

如何在不同服务器之间来进行安全又极速的大量数据同步?

镭速

异常检测:探索数据深层次背后的奥秘《上篇》

汀丶人工智能

数据挖掘 机器学习 异常检测

TDengine 用户案例合集 | 智能环保项目的时序数据处理难点与优化实践

TDengine

时序数据库 #TDengine

如何使用ChatGPT构建一个Web应用程序?

互联网工科生

应用程序 ChatGPT AI编程

企业微信针对百万级组织架构的客户端性能优化实践

JackJiang

网络编程 即时通讯 IM

百度APP iOS端包体积50M优化实践(六)无用方法清理

百度Geek说

ios 百度app 企业号9月PK榜

视频转码工具 Compressor激活中文最新版

mac大玩家j

Mac软件 视频处理工具 视频编辑软件 编辑视频

国泰君安期货新一代国产业务系统上线 首次使用国产分布式数据库TDSQL

Geek_2d6073

AITO问界全系迎规模最大范围OTA升级,重新定义“智能天花板”

Geek_2d6073

软件物料清单管理平台,让开源组件安全问题无所遁形

网安云

什么是模型混合模式?

3D建模设计

3D模型 gltf编辑器

GLTF编辑器的另一个作用:格式转换

3D建模设计

格式转换 GLTF glb

OmniFocus 3 for Mac(GTD时间管理工具) v3.15中文激活版

mac

任务管理软件 苹果mac Windows软件 OmniFocus Standard

区块链系统开发应用解决方案|去中心化应用dapp模式搭建

V\TG【ch3nguang】

REST API设计原则:构建可扩展、易维护的 API

高端章鱼哥

RESTful API REST API

Mac电脑版MarkDown写作推荐 iA Writer 激活中文最新版

胖墩儿不胖y

markdown Mac软件 Markdown 编辑器 写作软件

GLTF编辑器:在线模型材质编辑工具

3D建模设计

纹理处理 GLTF 材质修改

百度智能云千帆大模型平台 2.0 产品技术解析

Baidu AICLOUD

异构计算 百度百舸 千帆大模型平台

人工智能在云计算中能发挥什么作用?

Finovy Cloud

智能合约跟单系统开发,一键自动跟单平台模式搭建

V\TG【ch3nguang】

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