【问题标题】:Rust: Refer to a third .rs file from a second .rs fileRust:从第二个 .rs 文件引用第三个 .rs 文件
【发布时间】:2023-01-12 06:34:05
【问题描述】:

我有三个文件:

// a.rs

struct MyThing {
}
// b.rs

mod a;

struct That {
    mything: &a::MyThing;
}
// main.rs

mod a;
mod b;

fn main() {
    let thing= a::MyThing{};
    let that= b::That{myThing: &thing};
}

我得到的 a.rs 的编译错误是:

找不到模块 b 的文件 帮助:创建模块b,创建文件“src/a/b.rs”或“src/a/b/mod.rs”

我以为我需要 mod a; 以便我可以访问 a.rs 中的模块,但看起来因为 mod b;main.rs 中,b.rs 中的 mod a; 是相对于 b 解释的。 ..或者其他的东西。

如何使用另一个.rs 文件?

【问题讨论】:

    标签: file rust module rust-crates


    【解决方案1】:

    mod a; 不只是声明或引用模块,a,它定义模块,a。将mod a; 放入b.rs 中会创建一个独立于main.rs 中创建的模块。相反,让main.rs创建模块并在b中引用a。在这种情况下,您需要根据它的箱子来引用它。模块./b.rs 在哪个板条箱中?根箱,crate

    // b.rs
    
    use crate::a;
    
    struct That {
        mything: &a::MyThing;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2021-12-11
      相关资源
      最近更新 更多