写点什么

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

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

关注

评论

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

英特尔研究院将在NeurIPS大会上展示业界领先的AI研究成果

E科讯

基于Browscap对浏览器工具类优化

不在线第一只蜗牛

浏览器 软件开发 可视化工具

颠覆你的绘图方式!这8款泳道图工具你用过几款

职场工具箱

泳道图 工具推荐

每日一题:LeetCode-105. 从前序与中序遍历序列构造二叉树

Geek_4z9ami

面试 算法 LeetCode 二叉树 Golag

Google排名高的是什么样的页面?

九凌网络

用户案例|Milvus 助力 Credal.AI 实现 GenAI 安全与可控

Zilliz

Milvus Zilliz AIGC credal

【技术人的 2023】 ——我的AI学习之旅年度总结

YoLo

AI

软件测试/人工智能|HTTPS加密协议,你会多少?

霍格沃兹测试开发学社

技术人年度回顾:大模型驱动的变革与影响

熬夜磕代码、

大模型

外贸网站关键词布局:提升外贸网站关键词排名的策略

九凌网络

分布式基础概念-分布式高可用

派大星

分布式 Java 面试题

KubeSphere Marketpalce 上新!Databend Playground 助力快速启动数据分析环境

Databend

大模型数据集:力量的源泉,进步的阶梯

数据堂

代币开发:加密货币开发与IDO预售相关指南

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

国内零代码链接器有哪些?

谷云科技RestCloud

零代码 APPlink

淘宝商品评论的可靠性如何保证?

技术冰糖葫芦

API 接口

大模型数据集:探索新维度,引领AI变革

数据堂

inBuilder低代码平台新特性推荐-第十五期

inBuilder低代码平台

低代码

【智问-Askture】降低企业成本,定制一个专属自己的ChatGPT!

伊克罗德信息科技

AIGC 大语言模型

【写作训练营打卡|03】

利用SEO策略提升网站排名和流量

九凌网络

大模型数据集:揭秘AI背后的魔法世界

数据堂

软件测试/人工智能|一文告诉你Python字符串的相关操作

霍格沃兹测试开发学社

软件测试/人工智能|一文告诉你Python元组相关操作

霍格沃兹测试开发学社

泳道图绘制指南!快速掌握流程,轻松规划

职场工具箱

泳道图 高效绘制

IT外包对中小企业的独特优势

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

Java多线程系列5:sleep()

BigBang!

Java多线程

企业IT外包的四种类型

Ogcloud

外包 IT 外包公司 外包项目 IT 运维

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