[Rust] 导入和模块

Rust中将传统的lib或者称为 crate, 通常的称为模块(module), 使用use关键字引用crate中内容。

use std::env;

Rust默认有Prelude模块,预先加载了std标准库内容,所以对于ResultVec等我们不需要手动引入就可以直接使用。

模块(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.rsxx/bb.rs声明为模块,此处mod aa;相当于mod aa {}。外部使用时,再声明模块xx

mod xx;

然后就可以通过use xx::aa::*;引入使用aa中的公有方法。

Rust 的多层模块查找规则:

  1. 优先在当前层级查找aa.rs文件
    1)main.rs、lib.rs、mod.rs中的mod aa; 默认优先查找同级目录下的 aa.rs 文件;
    2)其他文件bb.rs中的mod aa; 默认优先查找bb同级目录下的 aa.rs 文件;
  2. 如果 aa.rs 不存在,则查找 aa/mod.rs 文件,即 aa 目录下的 mod.rs 文件。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容