如何在main.rs之外的其他文件中使用模块

问题描述 投票:0回答:3

我的 src 文件夹中有 3 个文件:“main.rs”、“network.rs”和“nodes.rs”。我想在network.rs中使用我在nodes.rs中声明的函数。我似乎找不到办法做到这一点。我在网上能找到的只是访问 main.rs 中的功能的方法。

main.rs:

mod network;
mod nodes;

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

网络.rs

pub fn run() {
    newnode();
}

节点.rs

pub fn newnode() {
    println!("Test");
}
rust module rust-cargo
3个回答
2
投票

要访问

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


1
投票

如果您不想使用完整路径调用函数,则需要使用

use
在相应的模块中显式引用它们。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.