我的 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");
}
要访问
nodes
模块,您需要导航回 main.rs
,然后下降到子模块。您可以通过使用 main.rs
关键字(因此 crate
)从板条箱的根(本例中为 crate::nodes::newnode
)开始,或者,因为 main.rs
是 network
的父模块,访问通过super
:super::nodes::newnode
。
如果您不想使用完整路径调用函数,则需要使用
use
在相应的模块中显式引用它们。
在
network.rs
的开头:use super::nodes::newnode;
。
没有人提到并使我感到沮丧的是,如果你想在另一个不是 main 的模块中使用模块,你必须将其包含在 main.rs 文件中。换句话说,如果您不在 main.rs 中包含某个模块,则其他模块将无法访问该模块。希望这可以帮助一些人。