1

我有以下结构:

|-- Cargo.toml
|-- src
|   |-- file1.rs
|   |-- file2.rs
|   `-- main.rs

src/file1.rs

pub fn function1() {}

src/file2.rs

// ERROR (1): error[E0583]: file not found for module `file1`
// mod file1;

use crate::file1;
pub fn function2() {
    file1::function1();
}

src/main.rs

// ERROR (2): no `file1` in the root
// use crate::file1;
mod file1;
mod file2;

fn main() {
    file1::function1();
    file2::function2();
}

基本上,我有不同的 import 方式function1,这取决于我在 crate 根目录中还是在任意 Rust 文件中(请参阅ERROR (1)ERROR (2))。我对 Rust 如何管理任意文件有点迷茫:它们的行为与根 crate 不同,在根 crate 中,一个简单的mod关键字就可以解决问题。因此,所提到的重复的答案只是部分地回答了如何从 crate 根目录引用文件,而不是为什么从另一个文件引用相同的文件应该不同(use crate::<filename>)。

4

0 回答 0