Rust中将传统的lib
或者库
称为 crate
, 通常的包
称为模块(module)
, 使用use
关键字引用crate
中内容。
use std::env;
Rust默认有Prelude
模块,预先加载了std
标准库内容,所以对于Result
,Vec
等我们不需要手动引入就可以直接使用。
模块(module)
使用mod
关键字来声明,内部可以放任何Rust代码,默认为private,外部不可见,如果外部可见需要pub
用修饰。
mod hello {
pub say_hello() {
println!("hello world");
}
}
通常在目录下放置xx/mod.rs
将模块声明在其中
pub mod aa;
pub mod bb;
如上将mod.rs
同级目录下的xx/aa.rs
和xx/bb.rs
声明为模块,此处mod aa;
相当于mod aa {}
。外部使用时,再声明模块xx
mod xx;
然后就可以通过use xx::aa::*;
引入使用aa中的公有方法。
Rust 的多层模块查找规则:
- 优先在当前层级查找
aa.rs
文件
1)main.rs、lib.rs、mod.rs中的mod aa;
默认优先查找同级目录下的 aa.rs 文件;
2)其他文件bb.rs中的mod aa;
默认优先查找bb同级目录下的 aa.rs 文件; - 如果 aa.rs 不存在,则查找 aa/mod.rs 文件,即 aa 目录下的 mod.rs 文件。
网友评论