【发布时间】:2021-04-01 13:31:22
【问题描述】:
这可能是一个非常愚蠢的问题,但我想知道是否可以从模块中公开类型。如果这听起来很模糊,我希望以下信息能够阐明我想要实现的目标。
假设我有以下文件结构:
Project
|-Units
| |-Length
| | |-Meter.rs
| | |-mod.rs
| |-mod.rs
|-main.rs
Units/mod.rs 文件:
pub mod Length;
单位/长度/mod.rs 文件:
pub mod Meter;
Units/Length/Meter.rs 文件:
pub struct Meter
{
someValue: f64
}
// some implementation here
现在当我想在 main 中使用 Meter 结构时,我似乎需要编写以下内容:
let someMeter = Units::Length::Meter::Meter::new(5.3);
我想写的是
let someMeter = Units::Length::Meter::new(5.3);
虽然我不确定我应该在 mod.rs 文件中更改什么来实现这一点。我真的不想更改文件夹结构,因为我喜欢它的组织方式。任何对我做错了什么的见解将不胜感激。
我承认在这个例子中我没有遵循 rust 命名约定。
【问题讨论】:
-
这个问题和答案是一个很好的例子,说明在决定无视约定之前了解为什么存在约定是一个好主意。