目录

Rust 模块系统与 Cargo

随着代码变多,你需要模块来组织,用 Cargo 来管理依赖和构建。这是写真实项目的基础。

模块 mod

mod math {
    pub fn add(a: i32, b: i32) -> i32 { a + b } // pub 才对外可见
    fn secret() -> i32 { 42 }
}

fn main() {
    println!("{}", math::add(2, 3)); // 5
    // math::secret(); // ❌ 私有,无法访问
}

pub 控制可见性,默认模块内私有。可多层嵌套、可用 use 引入:

use math::add;
fn main() { println!("{}", add(1, 2)); }

Cargo.toml 与依赖

[package]
name = "demo"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
rand = "0.8"

添加后 cargo build 自动从 crates.io 拉取并编译。

常用命令

cargo build        # 编译(debug)
cargo build --release  # 优化编译
cargo run          # 编译并运行
cargo test         # 跑测试
cargo add serde    # 直接加依赖(新版 Cargo)

项目结构建议

src/
├── main.rs
├── lib.rs      # 库代码
└── math.rs     # 子模块(在 main.rs 用 mod math; 引入)

小结

  • mod + pub + use 组织代码可见性。
  • Cargo 管依赖、构建、测试,一条命令全搞定。
  • 想找现成轮子?crates.io 搜索即可。

➡️ 9. 多线程与 Channel