【发布时间】:2024-04-20 05:40:02
【问题描述】:
我想在 rust 中创建以下数据模型。
在其他语言中,为每个结构创建一个文件是正常的。我创建了以下文件结构:
.
│
┝ data_model
│ │
│ ┝ mod.rs
│ ┝ house.rs
│ └ garage.rs
│
└ main.rs
我需要garage 结构中的房屋列表和house 结构中的车库列表。但我不能包含这些文件。我是这样试的:
main.rs:
mod data_model;
...
mod.rs:
mod house;
mod garage;
效果很好。我可以使用主文件中的结构。
但如果我这样做(mod.rs 和 main.rs 没有改变):
garage.rs:
mod house;
struct garage{
houses: Vec<house>
}
它不起作用,因为 rust 搜索文件 data_model/garage/house.rs 而不是只搜索 data_model/house.rs。
但我不想将house.rs 移动到garage/house.rs,因为这样看起来,房子是农舍的一个组成部分。它也行不通,因为我还必须将花格包括在房子里,如果房子是花格的组成部分,那是行不通的。
创建这样的数据模型的正确方法是什么?
PS:我知道存在一些问题,因为我不使用指针来指代从房子到车库和从车库到房子。但这不是目前的问题。
【问题讨论】:
-
在 Rust 中创建递归结构非常困难,这是你真正想要的吗?
-
"在其他语言中,为每个结构创建一个文件是正常的。"但不是在 Rust 中,每个文件创建一个模块,并且模块通常包含相互关联的东西。
标签: rust