我有三个文件:
// 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.s的编译错误是:
文件没有找到模块
b
帮助:创建模块b
,创建文件"src/a/b.r "或"src/a/b/mod.rs"
我认为我需要mod a;
,以便我可以访问a.rs
中的模块,但看起来像因为mod b;
在main.rs
中,b.rs
中的mod a;
相对于b
被解释…什么的。
我如何使用一个.rs
文件从另一个?
mod a;
不只是声明或引用模块,a,它定义了模块a
。将mod a;
放在b.rs
中创建一个与main.rs
中创建的单独模块。相反,让main.rs
创建模块,并在b
中引用a
。在这种情况下,您需要根据它的crate来引用它。在哪个板条箱是模块./b.rs
?根箱子,crate
:
// b.rs
use crate::a;
struct That {
mything: &a::MyThing;
}