我有这个文件结构:
src
├── core
│ ├── game.rs
│ ├── math.rs
│ └── screen.rs
├── core.rs
└── main.rs
在core/screen.rs
内部我有一个结构Screen
。我可以在 main.rs
中使用这个结构及其函数,例如
mod core;
fn main() {
let s = core::screen::Screen::new();
}
这可行,但问题是,在 core/game.rs
内部我无法使用相同的结构。
我尝试过 use
和 mod
但我无法弄清楚。
内部 core/game.rs
pub struct Game {
screen: ?????? // Should be core::screen::Screen?
}
对于那些想知道的人来说,core.rs 的内容看起来像
pub mod math;
pub mod screen;
pub mod game;
现在 core.rs 文件除了一个非常奇怪的命名空间外几乎没有任何用途,但它将来会有功能。
最佳答案
在其前面加上crate::
:
// core/game.rs
pub struct Game {
screen: crate::core::screen::Screen
}
或者在文件顶部抛出一个use crate::core::screen;
,然后使用screen: screen::Screen
。
关于rust - 在 Rust 中使用同一模块中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70949637/