包(Packages): Cargo 的一个功能,它允许你构建、测试和分享 crate。
Crates :一个模块的树形结构,它形成了库或二进制项目。
模块(Modules)和 use: 允许你控制作用域和路径的私有性。
路径(path):一个命名例如结构体、函数或模块等项的方式
创建一个库
cargo new --lib restaurant
定义模块
将模块定义在同一个文件中
src/lib.rs
mod back_of_house { pub fn take_order() {} } pub fn eat_at_restaurant() { back_of_house::take_order(); }
将模块分割进不同文件
src/back_of_house.rs 或 src/back_of_house/mod.rs
pub fn take_order() {}
src/lib.rs
pub mod back_of_house; pub fn eat_at_restaurant() { back_of_house::take_order(); }
模块中包含模块
src/front_of_house/hosting.rs 或 src/front_of_house/hosting/mod.rs
pub fn take_order() {}
src/front_of_house.rs
pub mod hosting;
src/lib.rs
pub mod front_of_house; pub use crate::front_of_house::hosting; pub fn eat_at_restaurant() { hosting::add_to_waitlist(); }