如何在 main.rs 之外的另一个文件中使用模块

How to use module in another file besides main.rs

我的 src 文件夹中有 3 个文件:'main.rs'、'network.rs' 和 'nodes.rs'。我想在 network.rs 中使用我在 nodes.rs 中声明的函数。我似乎无法找到一种方法来做到这一点。我在网上只能找到访问 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");
}

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

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

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