mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-03-14 11:20:29 +08:00
Update Ch14
This commit is contained in:
parent
5ce6d1d7cf
commit
dfa9b642a8
@ -205,15 +205,15 @@ error: doctest failed, to rerun pass `--doc`
|
||||
程序项目里的文档注释,用于对描述代码箱及模组尤其有用。使用他们来解释容器,the container,的整体目标,有助于咱们的用户们理解代码箱的组织结构。
|
||||
|
||||
|
||||
### 使用 `pub use` 导出好用的公开 API
|
||||
### 使用 `pub use` 导出便利的公开 API
|
||||
|
||||
**Exporting a Convinient Public API with `pub use`**
|
||||
|
||||
在发布某个代码箱时,其公开 API 结构是主要的考量。用到咱们代码箱的人们,相比咱们自己,对代码箱结构的没有那么熟悉,进而在咱们的代码箱有着大型模组层次结构时,就会难于找到他们打算使用的部分。
|
||||
在咱们发布代码箱时,公开 API 的结构是主要的考量。相比与咱们,使用咱们代码箱的人们对代码箱结构的没有那么熟悉,并在咱们的代码箱有着大型模组层次结构时,难于找到他们打算使用的部分。
|
||||
|
||||
在第 7 章中,就曾讲到过怎样使用 `pub` 关键字,把一些程序项目构造为公开,以及使用 `use` 关键字,把一些程序项目带入到某个作用域。尽管如此,在开发某个代码箱过程中,对咱们有意义的组织结构(模组树),对于咱们的用户,就可能不那么便利。咱们可能打算把代码箱结构,组织为包含多个级别的层次,但随后打算使用已被定义在该层次结构深处某个类型的人,就可能在查明那个类型是否存在上,遇到麻烦。他们可能还会对必须敲入 `use cargo_features_demo::some_module::another_module::UsefulType;`,而非敲入 `use cargo_features_demo::UsefulType;` 而感到恼火。
|
||||
在第 7 章中,咱们曾讲到过怎样使用 `pub` 关键字把一些程序项目构造为公开,与怎样使用 `use` 关键字,把程序项目带入到作用域。但是,咱们在开发某个代码箱时,对咱们有意义的组织结构(模组树),对于咱们的用户则可能不那么便利。咱们会打算把代码箱结构组织为包含多个级别的层次,但随后某个想要使用定义在层次结构深处类型的人,就可能在找出那个类型是否存在上遇到麻烦。他们可能还会对必须敲入 `use cargo_features_demo::some_module::another_module::UsefulType;`,而非敲入 `use cargo_features_demo::UsefulType;` 而感到恼火。
|
||||
|
||||
可喜的是,在代码箱组织结构 *不* 便于其他人在别的库中使用时,咱们并不必须重新调整代码箱的内部组织:相反,咱们可通过使用 `pub use`,重新导出程序项目,而构造出一种不同于咱们私有组织结构的公开组织结构。重新导出(re-export)会取位于某处的一个公开程序项目,并在另一处将其构造为公开,就跟这个项目是在这另一处被定义过一样。
|
||||
可喜的是,在代码箱组织结构 *不* 便于其他人在另外的库中使用时,咱们不必重新调整代码箱的内部组织:相反,咱们可通过使用 `pub use`,重新导出程序项目,而构造出一种不同于咱们的私有组织结构的公开组织结构。重新导出,re-export,会取一处的公开程序项目,而在另一处将其构造为公开,就跟这个项目是在另一处被定义过一样。
|
||||
|
||||
比如,假设这里构造了用于对一些美术概念建模的一个名为 `art` 的库。这个库里头有两个模组:包含了两个分别名为 `PrimaryColor` 与 `SeccondaryColor` 枚举的 `kinds` 模组与包含了一个名为 `mix` 函数的 `utils` 模组,如下清单 14-3 中所示:
|
||||
|
||||
|
@ -791,6 +791,11 @@ $ rustup component add llvm-tools-preview
|
||||
Documentation comment, 将产生出 HTML 的注释。
|
||||
|
||||
|
||||
- 重导出程序项目
|
||||
|
||||
Re-export, 使用 `pub use` 重新导出程序项目。
|
||||
|
||||
|
||||
- 单态化
|
||||
|
||||
所谓 *单态化,monomorphization*,是指即通过把在编译后用到的具体类型填入到泛型位置,而将通用代码转换为具体代码的过程。参考 [使用泛型代码的性能问题](Ch10_Generic_Types_Traits_and_Lifetimes.md#使用泛型参数代码的性能问题)。
|
||||
|
Loading…
Reference in New Issue
Block a user