Rust模块零碎

参考文章后作出的简略总结,如有谬误脱漏,望指出!

总结:

  1. Rust编译器不会依据文件树主动构建模块树,须要开发者手动在用mod关键字构建子模块关系。
  2. 所有文件都晓得crate, 代表src/main.rs, 互相调用须要用到crate.
  3. 通过pub关键字设置内容是否导出。

依赖:

proj  |__ main.rs  |__ conf.rs  |__ sub_mod_1        |__ a.rs        |__ mod.rs  |___ sub_mod_1        |__ b.rs        |__ mod.rs

三种依赖及其解决办法:

main.rs -> conf.rs, 在main.rs中申明mod conf;, 则可调用conf.rs的内容。

main.rs -> sub_mod_1/a.rs, 在sub_mod_1/mod.rs中退出mod a; 来构建模块关系,随后main.rs中退出mod sub_mod_1;即可。

sub_mod_1/a.rs -> sub_mod_2/b.rs, 相似下面,各自的mod.rs中退出mod构建模块关系后, a.rs通过crate::sub_mod_2::b来调用b的内容。

参考资料

  • https://zhuanlan.zhihu.com/p/164556350
  • http://www.sheshbabu.com/posts/rust-module-system/
  • https://doc.rust-lang.org/nightly/edition-guide/rust-2018/module-system/path-clarity.html