rust的代码组成结构分为package->cratio->module
每个rust的程序都包含入口文件main.rs,模块导入文件lib.rs
rust的包导入use关键字
在rs文件顶端用use关键字可以导入依赖,另外rust的函数、strut、method默认都是私有的,如果在别的模块和文件需要使用要显示的在定义处加pub
pub use的用法:re-export重导出
- 因为 lib.rs里有pub use front_of_hosting::hosting
- 所以main.rs里能直接 my_project::hosting,省略掉路径front_of_hosting而直接导出了hosting
- 也可以写相对路径my_project::front_of_hosting::hosting
- 也可以re-export函数,即在lib.rs pub use front_of_hosting::serveing::take_order,这里可以直接调用my_project::take_order
lib.rs
1 | pub use front_of_hosting::hosting; |
main.rs
1 | use my_project::eat_at_restaurant; |
定义mod
我们在开发过程中需要自己定义mod,rust对于mod的定义有特殊的犯法,如下:
- 在lib.rs里声明mod front_of_hosting;注意这里是;
- 按照crate树状结构创建同名的.rs文件这里是front_of_hosting.rs
- 如果mod存在嵌套子mod的情况,比如这里front_of_hosting嵌套了serving和hosting,则在父mod的rs文件同样声明子mod,这里是mod hosting;和mod serving;注意这里是;
- 创建父mod文件夹,这里是front_of_hosting文件夹,在父mod文件夹里创建子mod的同名.rs文件\
- 在同名的mod的rs文件中编写代码