一位 Reddit 用户在反映,在他们的 1TB 机器上,一个 target 目录占用了高达 165GB 的空间,总共有近 500GB 的 target 目录空间被占用。
相信不少人也遇到过类似的问题,针对 Rust Target 目录磁盘空间占用过大的问题,网友们展开了激烈的讨论,总结如下:
reddit原帖链接 https://www.reddit.com/r/rust/comments/1bms2gj/media_ran_out_of_disk_space_on_my_1tb_machine_a/
devenv 是一个旨在创建快速、声明式、可复现、可组合的开发环境的工具,利用 Nix 实现。
Tips: 类似的工具还有 Nix, brew-bundle, conda/Poetry 等
近日,devenv 发布了 1.0 版本,这是一个将 CLI 从 Python 重写到 Rust 的重大更新,带来了许多新特性和改进:
同时,核心开发人员也分享了从 Python 迁移到 Rust 的原因: 原 Python 实现的性能不足以满足需求,而选择 Rust 是因为其性能优势和在 Nix 社区中的逐渐普及。
github项目地址 https://github.com/cachix/devenv
blog地址 https://devenv.sh/blog/2024/03/20/devenv-10-rewrite-in-rust/
Rust Nightly 的最新版本中,加入了一项实验功能:Postfix Match。
这个功能允许开发者在表达式后,通过类似于方法调用的方式使用 match 语法。一些开发者反馈,认为这个特性使得代码更易读,尤其是在链式调用或长表达式中,它允许开发者从左到右顺序阅读代码,提高了代码的连贯性,但也有人担心语法的复杂度越来越高。
示例代码如下:
#![allow(unused)]
#![feature(postfix_match)]
fn main() {
enum Foo {
Bar,
Baz
}
fn get_foo() -> Foo {
Foo::Bar
}
// old way
match get_foo(){
Foo::Bar => {},
Foo::Baz => {},
}
// new way
get_foo().match {
Foo::Bar => {},
Foo::Baz => {},
}
}
甚至是这样
get_thing().match({
Thing::Foo => NextObj(1)
Thing::Bar => NextObj(2)
}).next_func()
rust unstable book 对应章节 https://doc.rust-lang.org/nightly/unstable-book/language-features/postfix-match.html
-- From 日报小组 RustPlumber