我有4个文件:
main.rs
mod bar;
fn main() {
let v = vec![1, 2, 3];
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
lib.rs
pub mod foo;
pub mod bar;
Run Code Online (Sandbox Code Playgroud)
foo.rs
pub fn say_foo() {
}
Run Code Online (Sandbox Code Playgroud)
bar.rs
use crate::foo;
fn bar() {
foo::say_foo();
}
Run Code Online (Sandbox Code Playgroud)
运行时cargo run出现错误消息:
mod bar;
fn main() {
let v = vec![1, 2, 3];
println!("Hello, world!");
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释如何解决此问题吗?更广泛地说:当存在a main.rs和a 时,模块查找如何工作lib.rs?我觉得很混乱
编辑:添加mod foo以main.rs解决此问题。但是我不明白这一点,给我的印象lib.rs是,这个地方“暴露”了我所有的模块?为什么也必须在其中声明模块main.rs?
我的Cargo.toml:
pub mod foo;
pub mod bar;
Run Code Online (Sandbox Code Playgroud)