本文基于rust 2018 edition.
注意事项:
mod文件只能在src目录下。
mod文件现在(2018edition)可以不用 pub mod abc{}包起来了,除非你故意想做两层。
几种情况:
一、和main.rs平级的mod文件
我们在main.rs平级有一个mod文件,test.rs.
上面是test.rs文件的情况。
使用:
pub mod test; //直接导入test.rs mod文件
use std::time::Duration;
use std::{thread, time};
fn main() {
//in_mod::test_arc();
test::my_println();
thread::sleep(Duration::from_millis(500000));
}
二、在与main.rs平级的文件夹中
【本部分感谢张汉东先生的支持】
假定,我现在想把mod文件都放在一起,main.rs如何去调用这些mod文件?
比如,在main.rs同级目录有my_mods文件夹,下面放了一个arc_mod.rs mod文件。
那main.rs文件如何调用acr_mod.rs中的函数?
如果和上面一样,直接mod arc_mod:
mod arc_mod; // 想建立arc_mod 文件的交互
pub mod test;
use std::time::Duration;
use std::{thread, time};
fn main() {
//in_mod::test_arc();
test::my_println();
thread::sleep(Duration::from_millis(500000));
}
则会报错:
应如何处理?
应在main.rs层,加一个与my_mods文件夹同名的my_mods.rs. my_mods.rs主要起一个链接作用,一头链接main.rs, 一头链接arc_mod.rs;
同时,在my_mods.rs:
mod arc_mod; //表示my_mods.rs要链接mod arc_mod。本身可以是没有其它内容的链接文件
在main.rs中
引入:
use my_mods;
这样,就可以通过my_mods.rs 把main.rs和arc_mod.rs连起来了。
按下面方式使用,即可:
也可以对库的路径进行as简化(别名):