Rust 2024 版本已经发布,其中包含一些不兼容的变更,简单汇总如下:
核心语言
impl Trait 生命周期捕获规则:在 2024 版本中,返回位置的 impl Trait 默认捕获所有生命周期,而 2021 版本默认不捕获。if let 中临时变量的作用域,其在 if 分支结束时结束,避免了借用冲突;同时缩短了尾表达式中临时变量的生命周期,减少了相关错误。unsafe 的变化:2024 版本要求更多代码段标记为 unsafe ,如 extern 块、部分属性(#[no_mangle]、 #[export_name] 、 #[link_section] 等),以提醒开发者注意潜在风险。gen,用于未来的生成器;同时保留特定的#相关语法。标准库
Future 和 IntoFuture 添加到预导入模块,因 async 关键字已推出多年,预计对常规代码库影响较小。Box<[T]> 添加 IntoIterator:2024 版本中 Box<[T]> 实现了 IntoIterator<Item = T>,为避免破坏旧代码,之前版本中直接调用 Box::<[T]>::into_iterator 会被隐藏,维持旧有行为。std::env::{set_var, remove_var} 和 std::os::unix::process::CommandExt::before_exec 标记为不安全函数,前者在多线程环境使用存在风险,后者已被弃用且不安全。Cargo
更多信息请参见原文:
https://bertptrs.nl/2025/02/23/rust-edition-2024-annotated.html
这是一个相对小众的包,用来查找字体文件,支持 Windows/macOS/Linux 系统。
Github 仓库:https://github.com/AllenDang/findfont-rs
Pake 是一个利用 Rust 构建桌面应用的工具,具有以下特征:
Github 仓库:https://github.com/tw93/Pake
--
From 日报小组 Yuan YQ
社区学习交流平台订阅:
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。