rust - 在 Rust 中使用同一模块中的文件

标签 rust

我有这个文件结构:

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 内部我无法使用相同的结构。 我尝试过 usemod 但我无法弄清楚。 内部 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/

相关文章:

rust - 如何向已经有状态的 NEAR Rust 智能合约添加新属性?

rust - 为什么 Rust 不允许在一种类型上复制和删除特征?

module - 我如何从子模块中获取 "export"内容?

rust - 取随机数的模数时类型推断失败

multithreading - 如何使用人造丝进行枚举迭代?

rust - 当无法进行类型推断时,使用 .into() 等通用特征方法

rust - 创建具有静态生存期的匿名变量时,最佳实践是什么?

rust - 不满足特征界限

types - 如何为原始指针实现 `Default`?

python - 将 Python 列表传递给 Rust 函数