如何在main.rs以外的文件中使用模块



我的src文件夹中有3个文件:rs"、"网络。Rs '和'nodes.rs'。我想使用在nodes中声明的函数。网络中的r。我似乎找不到做这件事的方法。我能在网上找到的都是访问main.rs中的函数的方法。

main.rs:

mod network;
mod nodes;
fn main() {
network::run();
}

network.rs

pub fn run() {
newnode();
}

nodes.rs

pub fn newnode() {
println!("Test");
}

要访问nodes模块,您需要导航回main.rs,然后下降到子模块。您可以通过使用crate关键字(即crate::nodes::newnode)从crate的根目录(本例中为main.rs)开始,或者,因为main.rsnetwork的父模块,所以可以通过super:super::nodes::newnode访问它。

如果您不想使用完整路径调用函数,则需要在适当的模块中使用use显式引用它们。

network.rs开头:use super::nodes::newnode;.

没有人提到并让我感到沮丧的是,如果你想在另一个不是主要的模块中使用一个模块,你必须将它包含在主要模块中。rs文件。换句话说,如果你没有在main中包含一个模块。其他模块将无法访问它。希望这能帮助到一些人。

相关内容

最新更新