我试图使用的功能从一个文件与多个其他文件。
当我尝试将“mod somefile”添加到文件中时,Rust编译器希望它们嵌套在子文件夹中,这不是我想要的项目结构,因为这意味着每次都要复制文件。
// src/main.rs
mod aaa;
mod bbb;
fn main() {
aaa::do_something();
bbb::do_something_else();
}
x
// src/aaa.rs
mod zzz; // rust compiler wants the file to be nested in a subfolder as aaa/zzz.rs
pub fn do_something() {
zzz::do_stuff();
}
// src/bbb.rs
mod zzz; // again, compiler wants the file nested in a subfolder as bbb/zzz.rs
pub fn do_something_else() {
zzz::do_stuff();
}
// src/zzz.rs
pub fn do_stuff() {
// does stuff here
}
的数据
我希望能够离开根src
文件夹中的src/zzz.rs
和使用它的功能之间的任何其他文件在项目中,而不是必须复制它的每个文件(例如:src/aaa/zzz.rs
,src/bbb/zzz.rs
)在目录中。
1条答案
按热度按时间qoefvg9y1#
在
main.rs
中只需要mod zzz;
一次。在
aaa.rs
和bbb.rs
中,您需要use crate::zzz;
,而不是mod zzz;
。一个例子:
文件
src/aaa.rs
:字符串
文件
src/bbb.rs
:型
文件
src/main.rs
:型
文件
src/zzz.rs
:型
只有当你有一个名为
aaa
的目录,里面有一个文件mod.rs
和zzz.rs
时,你才需要在aaa
模块里面有一个mod zzz;
。然后你必须把mod zzz;
放在mod.rs
中,使子模块aaa::zzz
对程序的其余部分可见。