0
我有一個Cargo項目由三個文件在同一目錄中組成:main.rs
,mod1.rs
和mod2.rs
。如何使用Cargo/Rust將相同目錄中的文件包含在模塊中?
我想從mod2.rs
到mod1.rs
導入功能,就像我將mod1.rs
導入到main.rs
的功能一樣。
我讀過關於所需的文件結構,但我沒有得到它 - 命名所有導入的文件mod
將導致編輯器中的小混亂,這也只是使項目層次結構複雜化。
有沒有像在Python或C++中一樣導入/包含獨立於目錄結構的文件的方法?
main.rs:
mod mod1; // Works
fn main() {
println!("Hello, world!");
mod1::mod1fn();
}
mod1.rs:
mod mod2; // Fails
pub fn mod1fn() {
println!("1");
mod2::mod2fn();
}
mod2.rs:
pub fn mod2fn() {
println!("2");
}
大廈結果:
error: cannot declare a new module at this location
--> src\mod1.rs:1:5
|
1 | mod mod2;
| ^^^^
|
note: maybe move this module `src` to its own directory via `src/mod.rs`
--> src\mod1.rs:1:5
|
1 | mod mod2;
| ^^^^
note: ... or maybe `use` the module `mod2` instead of possibly redeclaring it
--> src\mod1.rs:1:5
|
1 | mod mod2;
| ^^^^
我不能use
它,因爲它不作爲模塊存在任何地方,我不想修改目錄結構。
非常感謝!我幾乎確定沒有這種選擇。 – Neo
我讀了那章,但是從中不明白,我可以做你所描述的。 – Neo
@Neo:沒問題!我發現模塊系統一旦有了它的感覺就很有意義,但肯定有一點學習曲線 - [目前正在做一些簡化工作的工作](https://github.com/rust-郎/ RFC文檔/拉/ 2126)。 –