我有三个文件。主要。rs, foo。rs,酒吧。都在SRC目录中。我想用foo中的东西。r在酒吧,r。所以我有mod foo;酒吧里面。但我得到一个错误,如下所示。我不想把这个。子目录中的Rs,例如src/bar/foo。是否有其他方法来构建代码?因为我想要。除了酒吧,Rs还可以在许多不同的地方使用。如果你能告诉我你是如何用多个文件构建一个大项目的,那就足够了。
file not found for module `foo`
--> src/bar.rs:1:1
|
1 | mod foo;
| ^^^^^^^^
|
= help: to create the module `foo`, create file "src/bar/foo.rs"
error: aborting due to previous error
main.rs
mod bar;
fn main() {
println!("Hello, world!");
}
foo.rs
pub fn do_something() {
}
bar.rs
mod foo;
您只需要声明模块一次,在这种情况下,您将在main
中声明两者,然后您将能够从使用use crate::{mod_name}
的代码库中的其他任何地方导入它们。例子:
src/main.rs
// declare foo & bar modules
mod foo;
mod bar;
fn main() {
foo::foo();
foo::call_bar();
bar::bar();
bar::call_foo();
}
src/foo.rs
// import bar module
use crate::bar;
pub fn foo() {
println!("foo");
}
pub fn call_bar() {
bar::bar();
}
src/bar.rs
// import foo module
use crate::foo;
pub fn bar() {
println!("bar");
}
pub fn call_foo() {
foo::foo();
}