rust的模块声明有两种方式:
1、mod.rs文件方式
在 2018 年后的版本中已逐渐被新的模块系统取代,Rust 官方文档中已删除对 mod.rs 的介绍,主要因为该功能在 Rust 1.30 版本后被新的模块命名约定替代。
目录结构为:
backyard
├── Cargo.lock
├── Cargo.toml
└── src├── garden├── mod.rs│ └── vegetables.rs└── main.rs
mod.rs
文件需要写入pub mod vegetables;
main.rs
需要写mod garden;
才能在main.rs
中使用vegetables.rs
文件中的方法,例如:crate::garden::vegetables::funxxx()
2、使用文件夹命名管理模块方式
1.30 版本后被推荐写法,但是旧写法目前任然兼容
目录结构为:
backyard
├── Cargo.lock
├── Cargo.toml
└── src├── garden│ └── vegetables.rs├── garden.rs└── main.rs
需要在garden
目录同级目录下创建一个garden.rs
文件,内容为pub mod vegetables;
main.rs
需要写mod garden;
才能在main.rs
中使用vegetables.rs
文件中的方法,例如:crate::garden::vegetables::funxxx()
两种方式最终生成的模块路径完全一致,避免混合使用两种方式