相关疑难解决方法(0)

当存在main.rs和lib.rs时,Rust模块混乱

我有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 foomain.rs解决此问题。但是我不明白这一点,给我的印象lib.rs是,这个地方“暴露”了我所有的模块?为什么也必须在其中声明模块main.rs

我的Cargo.toml

pub mod foo;
pub mod bar;

Run Code Online (Sandbox Code Playgroud)

module rust

5
推荐指数
3
解决办法
551
查看次数

标签 统计

module ×1

rust ×1