Updated 'src/packages_crates_and_modules/defining_modules.md'.

This commit is contained in:
Peng Hailin, 2024-01-01 19:52:45 +08:00
parent ccbb7d5823
commit 9d790a19d2

View File

@ -87,7 +87,7 @@ pub struct Asparagus {}
现在就来进入到这些规则的细节,并在实际操作中对他们进行演示吧!
## 有关联的代码分组在模组中
## 有关联的代码分组在模组中
**Grouping Related Code in Modules**
@ -128,9 +128,9 @@ mod front_of_house {
经由模组的使用,就可以将有关联的一些定义,组织在一起,并以他们因何相关而取个名字。使用此代码的程序员们,就可以根据这些分组,而非通读全部的这些定义,来浏览代码,那么在找到他们想要使用的那些定义时,就会容易一些。而对于要往该代码增加新功能的那些程序员,就清楚在哪里放置代码,来保持程序组织有序。
早先曾提到 `src/main.rs``src/lib.rs` 都叫做代码箱根crate root。他们之所以有着这样的名字是由于这两个文件的内容都形成了位处该代码箱的模组结构the root of the crate's module structure又称为 *模组树module tree*根部处,名为 `crate` 的模组。
前面我们曾提到,`src/main.rs` 和 `src/lib.rs` 被称为代码箱根。之所以叫这两个文件为代码箱根,是因为这两个文件的内容,构成了位于该代码箱结构(即 *模组树module tree*)根部,名为 `crate` 的模组。
以下清单 7-2 给出了清单 7-1 中结构的模组树(模组结构):
清单 7-2 显示了清单 7-1 中结构的模组树。
```console
crate
@ -146,6 +146,6 @@ crate
*清单 7-2清单 7-1 中代码的模组树*
该树展示了一些模组是怎样嵌套在另一模组内部的(比如,`hosting` 就嵌套在 `front_of_house` 里头)。该树还展示了一些模组与其他模组互为 *姊妹关系siblings*,即他们是定义在同一模组中的(`hosting` 与 `serving` 都是定义在 `front_of_house` 模组中)。继续以家族作比喻,那么在模组 A 为包含在模组 B 里头时,就说模组 A 是模组 B 的 *子模组child*,而模组 B 即为模组 A 的 *父模组parent*。请注意这里的整个模组树,都是以那个隐式的、名为 `crate` 模组,作为的根
该树显示了其中一些模组是如何嵌套在另一模组中的;例如,`hosting` 嵌套在 `front_of_house` 中。该树还显示其中一些模组彼此属于 *同辈siblings*,即他们被定义在同一模组中;`hosting` 和 `serving``front_of_house` 中定义的同辈份模组。如果模组 A 包含在模组 B 中,我们就说模组 A 是模组 B 的子模组,而模组 B 是模组 A 的父模组。请注意,整个模组树的根,都位于名为 `crate` 的隐式模组下
模组树或许会令人想到计算机上文件系统的目录树;这可是一个极为恰当的类比!就跟文件系统中的目录一样,使用模组是为对代码进行组织。而正如目录中的那些文件,这里需要一种找到那些模组的方法。
模组树可能会让咱们联想到电脑上的文件系统目录树;这是个非常恰当的比较!就像文件系统中的目录一样,咱们可以使用模组来组织代码。而就像目录中的文件一样,我们需要一种找到咱们模组的方法。