[rust]闭包使用不便的地方

rust中闭包引用使用稍微有点不方便的地方记录一下,代码文件层级如下,并且都以pub mod在当前mod中声明。

src
├── lib.rs
├── mod_a
   ├── mod.rs
   └── mod_b.rs
└── mod_c.rs

这时如果 mod_c要使用 mod_a 中的mod_b.rs的代码

必须在lib.rs中显示的导入(use)包mod_a 才能使用,原因可能是 lib.rs是总入口,如果不声明mod_a 直接在mod_c中使用mod_b因为没有在根节点声明,会提示mod_b未定义。

//lib.rs
pub use mod_c
pub use mod_a

继而推论: rust编译文件都是以顺序引入的方式,加入编译的。即,如果只定义不在从root(main.rs/lib.rs) 节点引入或者当前目录的mod(mod.rs和其下层mod,上层下面的未知需,所以需要上层引入)中及其下层引入,都不会参与编译(就是说mod无法直接使用上层目录同级的其他mod,需要上层目录或root先引入)。