Rust 团队很高兴地宣布 Rust 的新版本 1.43.0。Rust 是一种赋予每个人构建可靠且高效软件能力的编程语言。
如果您之前已经通过 rustup 安装了 Rust,那么获取 Rust 1.43.0 就非常简单,只需运行
$ rustup update stable
如果您还没有安装,可以从我们网站上的相应页面获取 rustup,并在 GitHub 上查阅 1.43.0 的详细发布说明。
1.43.0 稳定版包含的内容
此版本相对较小。没有新的主要功能。我们有一些新的稳定 API、一些编译器性能改进以及一个与宏相关的小功能。请参阅详细的发布说明,了解本文未涵盖的其他更改。
item 片段
在宏中,您可以使用 item 片段将项插值到 trait、impl 和 extern 块的主体中。例如
mac_trait!
这将生成
围绕基本类型的类型推断
围绕基本类型、引用和二元操作的类型推断得到了改进。一个代码示例更容易理解这一点:此代码在 Rust 1.42 上编译失败,但在 Rust 1.43 中可以编译。
let n: f32 = 0.0 + &0.0;
在 Rust 1.42 中,您会收到一个错误,大致是“嘿,我不知道如何将 `f64` 和 `&f64` 相加得到 `f32` 结果。”现在的算法正确地判定 `0.0` 和 `&0.0` 都应该是 `f32`。
新的 Cargo 测试环境变量
为了帮助集成测试,Cargo 将设置一些新的环境变量。
这最容易通过示例来解释:假设我们正在开发一个命令行项目,简单地命名为“cli”。如果我们正在编写集成测试,我们希望调用那个 `cli` 二进制文件并查看它的行为。在运行测试和基准测试时,Cargo 将设置一个名为 `CARGO_BIN_EXE_cli` 的环境变量,我可以在我的测试中使用它
let exe = env!;
这使得调用 `cli` 变得更容易,因为我们现在可以直接获得它的路径。
库更改
您现在可以直接在浮点数和整数上使用关联常量,而无需导入模块。也就是说,您现在可以直接写 `u32::MAX` 或 `f32::NAN`,无需 `use std::u32;` 或 `use std::f32;`。
有一个新的 `primitive` 模块,重新导出了 Rust 的基本类型。这在编写宏并希望确保类型不会被遮蔽时非常有用。
此外,我们稳定了六个新的 API
其他更改
Rust 1.43.0 版本中还有其他更改:查看 Rust、Cargo 和 Clippy 中的变化。
1.43.0 的贡献者
许多人齐心协力创建了 Rust 1.43.0。没有大家的努力,这一切是不可能完成的。感谢你们!