mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-26 12:50:42 +08:00
Updated 'src/packages_crates_and_modules/paths.md'.
This commit is contained in:
parent
c8f7342468
commit
074b2b10fb
@ -197,13 +197,15 @@ pub fn eat_at_restaurant() {
|
||||
若咱们计划分享出咱们的库代码箱,以便其他项目可以使用咱们的代码,那么我们的公共 API,就是咱们与代码箱用户之间的合约,他决定了用户如何与咱们的代码交互。而在管理公开 API 变更方面,为使对咱们代码箱有依赖的人们更容易一些,则需要考虑诸多因素。这些考量超出了本书的范围;如果你对这个主题感兴趣,请参阅 [Rust API 指南](https://rust-lang.github.io/api-guidelines/)。
|
||||
|
||||
|
||||
> **带有一个二进制与一个库的 Rust 代码包最佳实践(Best Practice for Packages with a Binary and a Library)**
|
||||
> **带有一个二进制与一个库代码箱的 Rust 软件包最佳实践**
|
||||
>
|
||||
> 前面提到过 Rust 包可以同时包含一个 `src/main.rs` 二进制代码箱根,与一个 `src/lib.rs` 库代码箱根,且这两个代码箱都将默认有着该 Rust 包的名字。一般来说,这种同时包含了一个库及二进制代码箱模式下的包,都会在二进制代码箱中,仅有着足够启动一个会调用到库代码箱代码的可执行程序的少量代码。由于库代码箱的代码可被共享,因此这就实现了别的项目,受益于该 Rust 包所提供的绝大部分功能。
|
||||
> **Best Practice for Packages with a Binary and a Library**
|
||||
>
|
||||
> 模组树应定义在 `src/lib.rs` 中。随后,全部的公开程序项目,都可通过以该包名字开头的路径,在那个二进制代码箱中被使用。这个二进制代码箱,就像是个将用到那个库代码箱的完整外部箱,成了库代码箱的一名用户:他只能使用公共 API。这样做有助于设计出良好的 API;你不仅是库代码箱的作者,还是一名库代码箱的客户了!
|
||||
> 我们曾提到过,一个软件包可以同时包含一个 `src/main.rs` 的二进制代码箱根,和一个 `src/lib.rs` 库代码箱根,且默认情况下这两个代码箱都将有着这个软件包的名字。通常情况下,以这种同时包含一个库和一个二进制代码箱模式的软件包,都会在二进制代码箱中,加入启动一个会调用到库代码箱的可执行文件的足够少代码。这样,其他项目就能从这个软件包所提供的大部分功能中获益,因为库代码箱的代码可以共用。
|
||||
>
|
||||
> 在 [第 12 章](Ch12_An_I_O_Project_Building_a_Command_Line_Program.md),将以一个会同时包含二进制代码箱与库代码箱的命令行程序,对这种代码组织方式实践加以演示。
|
||||
> 模组树应定义在 src/lib.rs 中。然后,二进制代码箱并可通过以软件包名字开头的路径,使用任何公共项目。二进制代码箱就成为库代码箱的一个用户,就像会用到库代码箱的一个纯粹外部代码箱一样:他只能使用公开 API。这可以帮助咱们设计出良好的应用程序接口;咱们不仅是作者,同时也是客户!
|
||||
>
|
||||
> 在 [第 12 章](Ch12_An_I_O_Project_Building_a_Command_Line_Program.md),我们将以同时包含一个二进制代码箱,与一个库代码箱的命令行程序,演示这种代码组织实践。
|
||||
|
||||
|
||||
## 使用 `super` 关键字开始相对路径
|
||||
|
Loading…
Reference in New Issue
Block a user