写点什么

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

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

关注

评论

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

深度 | 突破AI大模型工业化开发,生成式AI迎来全链条服务商

澳鹏Appen

人工智能 数据标注 大模型 生成式AI LLM

谭中意 | 百模大战方酣,AI 开源亮剑

开源雨林

人工智能 开源 开放原子开源基金会 多模态

Microsoft Remote Desktop for Mac 远程连接工具推荐

胖墩儿不胖y

远程连接 微软远程桌面连接工具 Mac软件推荐 远程连接工具

mac电脑推荐显示器校准软件 BetterDisplay Pro 激活下载

mac大玩家j

Mac软件 显示器校准软件 显示器管理

Java单元测试及常用语句

java易二三

Java 编程 程序员 计算机

MES在人工智能方面的应用

万界星空科技

人工智能 MES系统

存储方案作为产品——Midgard探索

百度Geek说

数据治理 数据编排 储存 企业号 8 月 PK 榜

独家首发!openEuler 主线集成 LuaJIT RISC-V JIT 技术

openEuler

lua Linux 操作系统 openEuler risc-v

软件测试/测试开发丨文件上传与弹窗处理 学习笔记

测试人

Python 程序员 软件测试 自动化测试 测试开发

生成式AI:AI赋能新时代

百度开发者中心

人工智能 生成式AI 文心一言

Topaz Video AI for mac(视频增强和修复工具) 3.4.2完美激活版

mac

苹果mac Windows软件 Topaz Video AI 视频增强软件

祝贺!Databend Cloud 和阿里云 PolarDB 达成认证

Databend

Java并发编程(线程池篇)

java易二三

Java 程序员 线程池 计算机 科技

谁家面试往死里问 Swagger 啊?

程序员小富

Java springboot

FactoryBean 和它的兄弟SmartFactoryBean!

江南一点雨

Java spring

火山引擎ByteHouse:ClickHouse如何保证海量数据一致性

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号 8 月 PK 榜

NFT 数据基础设施 NFTScan 为万向区块链周黑客松开发者提供多链 NFT API 数据支持!

NFT Research

开放同飞,华为云发布盘古大模型全域协同生态

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜 华为云盘古大模型

百度文心一率先言向全社会开放 应用商店搜“文心一言”可直接下载

飞桨PaddlePaddle

人工智能 文心一言

HarmonyOS扫码服务,应用服务一扫直达打造系统级流量新入口

HarmonyOS SDK

HarmonyOS HMS Core

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