乐趣区

关于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
退出移动版