Rust 1.88.0 新版本发布
发表于:2025-06-30
Rust 新闻
摘要
Rust 1.88.0 新版本发布,此次版本带来了多个功能和改进。
-Rust 团队发布了最新的 Rust 版本 1.88.0。照例可以通过rustup update stable
快速升级到最新版本。
此次版本带来了多个功能和改进:
Let chains
语法稳定
Let chains
链式表达式终于稳定了,允许在if / if let
和 while / while let
后通过&&
链接子表达式, 子表达式可以直接引用前面 let 语句作用域中的变量而无需嵌套
if let Channel::Stable(v) = release_info()
&& let Semver { major, minor, .. } = v
&& major == 1
&& minor == 88
{
println!("`let_chains` was stabilized in this version");
}
新语法需要Rust 2024版本
Naked functions
支持通过naked_asm
宏编写汇编级别的函数
支持编写 naked funtions 来完全控制某个函数的汇编级别的代码,通过#[unsafe(naked)]
属性和naked_asm
宏很方便的实现
#[unsafe(naked)]
pub unsafe extern "sysv64" fn wrapping_add(a: u64, b: u64) -> u64 {
// Equivalent to `a.wrapping_add(b)`.
core::arch::naked_asm!(
"lea rax, [rdi + rsi]",
"ret"
);
}
- Boolean configuration
cfg
属性编译条件支持true和false字面量
之前无任何条件的编译选项如cfg(all())
和 cfg(any())
现在可以用cfg(true)
和cfg(false)
来更加直观的表示
- Cargo 工具自动缓存清理功能稳定
从 1.88.0 版本后,Cargo 将会在命令执行的后台自动清理家目录的缓存,有助于减少硬盘空间的占用。在这之前 ,如果不手动处理,从网络上下载的资源会永远占用磁盘空间,现在 Cargo 工具会有策略的删除长时间未访问的历史缓存。
- 稳定了一大批 API,比如
Cell::update
,impl Default for *const T