[Rust] Rust 1.52.0 已正式发布,及其新特性详述
💥 内容涉及著作权,均归属作者本人。若非作者注明,默认欢迎转载:请注明出处,及相关链接。
Summary: 2021 年 5 月 6 日,Rust 发布团队官宣 Rust 发布 1.52.0 稳定版。其最重要的变化不是语法或标准库,而是对 Clippy 工具支持的增强。执行 cargo 时,用户将获得预期的行为,不再因为运行命令的顺序而受到影响。
2021 年 5 月 6 日,Rust 发布团队官宣 Rust 发布 1.52.0 稳定版:Announcing Rust 1.52.0。
以下为官方公告原文——
Rust 团队很高兴地宣布,Rust 语言有了新版本:1.52.0。Rust 是一门编程语言,它使每个人都能够构建安全、高效的软件。
如果你已通过 rustup 安装了 Rust 的早期版本,那么更新到 Rust 1.52.0 相当容易:
rustup update stable
如果您还未安装过 Rust,可以从 Rust 官网页面获取 rustup,并可以在 GitHub 站点查阅 Rust 1.52.0 的详细发行说明。
Rust 1.52.0 稳定版的新特性
Rust 1.52.0 稳定版中,最重要的变化不是语法或标准库,而是对 Clippy 工具支持的增强。
先前的版本中,先运行 cargo check,然后再运行 cargo clippy 时,实际上并未运行 Clippy:cargo 在构建缓存时,没有区分两者。然而,在 1.52 中,这一点已经被修复。这意味着用户将获得预期的行为,不再因为运行这两个命令的顺序而受到影响。
其中语法、编译器、库的新特性,由笔者整理自 Rust 发布团队的内部论坛帖子 Rust 1.52.0 稳定版预发布测试中,关键新特性一瞥。
语法
- 增加代码分析(lint)
unsafe_op_in_unsafe_fn,用于检查unsafe fn中的不安全(unsafe)代码,是否被包裹在unsafe代码块中。此代码分析(lint)特性默认开启,未来的版本中,可能会成为警告或错误。 - Rust 1.52.0 开始,可以将数组的可变引用,强制转换为包含相同元素类型的指针。
编译器
对以下目标提供 3* 层架构支持:
s390x-unknown-linux-muslriscv32gc-unknown-linux-musl和riscv64gc-unknown-linux-muslpowerpc-unknown-openbsd
库
OsString实现了Extend和FromIteratorcmp::Reverse增加#[repr(transparent)]属性表示Arc<impl Error>实现error::Error- 所有整数除法和余数运算,现在都为
const
已稳定 APIs
下列方法已经稳定。
Arguments::as_strchar::MAXchar::REPLACEMENT_CHARACTERchar::UNICODE_VERSIONchar::decode_utf16char::from_digitchar::from_u32_uncheckedchar::from_u32slice::partition_pointstr::rsplit_oncestr::split_once
上个版本中,稳定的如下 APIs,现在为 const:
char::len_utf8char::len_utf16char::to_ascii_uppercasechar::to_ascii_lowercasechar::eq_ignore_ascii_caseu8::to_ascii_uppercaseu8::to_ascii_lowercaseu8::eq_ignore_ascii_case
其他更新
Rust 1.52.0 版本中,还有些其它更新。请查阅如下页面:Rust、Cargo、Clippy。
Rust 1.52.0 的贡献者
很多人共同协作,才创造了 Rust 1.52.0。没有你们,我们不可能成功。谢谢您们!
谢谢您的阅读!