美文网首页
[Rust] 导入和模块

[Rust] 导入和模块

作者: Tsun424 | 来源:发表于2020-01-08 18:38 被阅读0次

    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 文件。

    相关文章

      网友评论

          本文标题:[Rust] 导入和模块

          本文链接:https://www.haomeiwen.com/subject/oobvqctx.html