📜  在另一个模块中使用模块 rust (1)

📅  最后修改于: 2023-12-03 15:37:41.187000             🧑  作者: Mango

在另一个模块中使用模块 rust

在rust中,可以使用mod关键字来构建模块和子模块,从而划分程序的不同功能和层次结构。在一个模块中,我们可以通过use关键字将其他模块中的定义引入自己的作用域中,以便在该模块中使用这些定义。

引入模块

我们可以使用use关键字来引入其他模块,语法如下:

use path::{to, item};
use path::to::item;
use path::to::*;

如果我们要引入的模块在当前工程中,我们可以使用相对路径:

mod foo; // 导入foo模块

use self::foo::bar; // 导入foo模块中的bar项

如果要引入的模块不在当前工程中,我们可以使用绝对路径:

use crate::path::to::item; // 绝对路径
子模块

我们可以在模块中定义子模块,把相关的功能放到一个模块中,使代码更加清晰和易于管理:

mod foo {
    mod bar {
        fn baz() {
            println!("Hello, world!");
        }
    }
}

use self::foo::bar::baz; // 导入baz函数

fn main() {
    baz(); // 输出 "Hello, world!"
}
发布模块

默认情况下,模块中的定义只能在其所属的文件中访问,如果我们要在其他文件中使用某个模块的定义,我们需要将其公开。

我们可以使用pub关键字来公开模块中的定义:

mod foo {
    pub fn bar() {
        println!("Hello, world!");
    }
}

use self::foo::bar;

fn main() {
    bar(); // 输出 "Hello, world!"
}
小结
  • 使用use关键字来引入其他模块中的定义。
  • 可以使用相对路径和绝对路径来引入模块。
  • 可以在模块中定义子模块。
  • 使用pub关键字来公开模块中的定义。