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

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

关注

评论

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

Android开发之Theme、Style探索及源码浅析,kotlin语言实例精解

android 程序员 移动开发

Android开发十年,面试百度竟被刷!柳暗花明2020获字节跳动Offer

android 程序员 移动开发

Android开发想转去做鸿蒙,你的技术真的到天花板了吗?

android 程序员 移动开发

Android开发进阶,需要掌握这几个关键技术是关键!,kotlin中文文档

android 程序员 移动开发

Android开发5年,怎么样通过自学拿到40W年薪的?,kotlin语言架构

android 程序员 移动开发

Android开发三年,面了八家公司终于腾讯上岸,含泪整理面经

android 程序员 移动开发

Android开发五年,面试阿里才发现这些知识点没完全掌握;你知道吗

android 程序员 移动开发

Android开发现状:互联网寒冬下那些-Android-开发高手,都在研究什么技术

android 程序员 移动开发

Android开发的前景到底怎么样2016?,kotlin菜鸟教程

android 程序员 移动开发

Android开发者熬夜也要看完的25本中、高级工程师进阶必看书籍

android 程序员 移动开发

Android开发,没有跟上跨平台技术发展是你职业规划最大的可悲

android 程序员 移动开发

Android开发:老板说要加点功能---我:相机变美团,程序员真的是吃青春饭吗

android 程序员 移动开发

Android开发必会App启动优化,骚年你的屏幕适配方式该升级了

android 程序员 移动开发

Android开发月薪10K与30K之间,只相差这几样热门的前沿知识

android 程序员 移动开发

Android开发者必看:Git使用过程中的一些常见场景问题总结

android 程序员 移动开发

Android开发:和Android原生系统对着干的“黑科技,安卓基础面试题2018

android 程序员 移动开发

Android开发5年,分享下初级-中级-高级工程师-划分标准

android 程序员 移动开发

Android开发必看:一文教你完全理解DataBinding框架(下

android 程序员 移动开发

Android开发:自定义TabLayout,神奇效果竟是如此简单,Android面试题集2021版

android 程序员 移动开发

Android开发3年,我转Java后台了,真香,想转行当程序员的必看

android 程序员 移动开发

Android开发了解这些,自然无惧面试,2021最新Android面试笔试

android 程序员 移动开发

Android开发已经到了要烧香求职的地步了?(1),flutter文档下载

android 程序员 移动开发

Android开发面试:requestLayout() 这么问,面试者直呼

android 程序员 移动开发

Android开发:通过 webview 将网页打包成安卓应用,kotlin编程实践pdf

android 程序员 移动开发

Android开源的精美日历控件,热插拔设计的万能自定义UI

android 程序员 移动开发

Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

android 程序员 移动开发

Android开发UI新技能,你get这个新技能了吗?(附源码详解)

android 程序员 移动开发

Android开发如何进阶,薪资如何跟上年龄的脚步?,超全Android中高级面试复习大纲

android 程序员 移动开发

Android开发之旅:android架构,并发知识体系大全

android 程序员 移动开发

Android开发已经到了要烧香求职的地步了?,附面试题答案

android 程序员 移动开发

Android开发者们该如何面对中年危机?,移动智能终端开发技术设计实验作品

android 程序员 移动开发

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