dfjk let mut mid_count = mid_count .into_iter() .collect::<Vec<(&String, (i64, u32))>>(); mid_count.sort_by(|a, b| match b.1 .1.cmp(&a.1 .1) { 这是 Rust 1.84.0 格式化后的,给 a.1.1 和 b.1.1 中间都加了空格,以前好像没印象有这样的,有没有人知道这是怎么回事?
Drift 这并不是一个 bug,而是 rustfmt 的设计决策。试一下这个: #[rustfmt::skip] let mut mid_count = mid_count .into_iter() .collect::<Vec<(&String, (i64, u32))>>(); mid_count.sort_by(|a, b| match b.1.1.cmp(&a.1.1) { 这样可以避免 rustfmt 对这段代码进行修改。 Rust 社区对于 rustfmt 的变更一直保持开放态度。如果你认为这种格式化方式对你的工作流造成了困扰,可以在 Rust 的官方 GitHub 仓库下提交 Issue 或参与讨论(仓库:rust-lang/rustfmt)。 https://rust-lang.github.io/rustfmt/?version=v1.6.0&search= https://www.ncameron.org/blog/rustfmt-ing-rust/ 降级到之前的 Rust 版本来使用原来的 rustfmt。例如: rustup install 1.83.0 rustup override set 1.83.0 https://blog.rust-lang.org/2025/01/09/Rust-1.84.0.html