【Rust】模块

包(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();   
}

 

posted @ 2022-02-04 18:27  翠微  阅读(75)  评论(0编辑  收藏  举报