我的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.rs
是network
的父模块,所以可以通过super
:super::nodes::newnode
访问它。
如果您不想使用完整路径调用函数,则需要在适当的模块中使用use
显式引用它们。
network.rs
开头:use super::nodes::newnode;
.
没有人提到并让我感到沮丧的是,如果你想在另一个不是主要的模块中使用一个模块,你必须将它包含在主要模块中。rs文件。换句话说,如果你没有在main中包含一个模块。其他模块将无法访问它。希望这能帮助到一些人。