关于rust:Rust-模块系统

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理