From e301ff4eb2690d94a21a015f8f3633b95e18a245 Mon Sep 17 00:00:00 2001 From: Unisko PENG Date: Tue, 11 Apr 2023 14:33:54 +0800 Subject: [PATCH] Update Ch21 --- src/Ch21_Appendix.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/Ch21_Appendix.md b/src/Ch21_Appendix.md index 2f17fd1..59884c3 100644 --- a/src/Ch21_Appendix.md +++ b/src/Ch21_Appendix.md @@ -580,4 +580,36 @@ fn main() { 在第一章中,咱们曾看到 `cargo new` 会把一点有关某个版的元数据,添加到咱们的 `Cargo.toml` 文件。此附录就会讲到那意味着什么! +Rust 语言及编译器有着六周的发布周期,意味着用户会得到源源不断的新功能。其他编程语言会不经常地发布较大变更;Rust 则会更频繁发布较小的更新。不久之后,全部这些小修改就会堆积起来。不过这一个个发布中,回头看看而讲到,“噢,从版本 1.10 到 1.31,Rust 改变了很多!”。则是不容易的。 + +每两三年,Rust 团队都会产生一个新的 Rust *版本,edition*。每个版本都会以完全更新的文档与工具,将那些业已落地到一个明确包中的特性放到一起。新版本会作为寻常的六周发布过程而交付。 + +这些版本服务了不同人群的不同目的: + +- 对于活跃的 Rust 用户,新版本会把那些增量变更,一起放入到一个易于掌握的包中; +- 对于那些非用户,新版本释放了一些已落地的大进展信号,这会让 Rust 或许值得再看一看; +- 对于开发 Rust 的人们,新版本会提供这个项目作为整体的集结点。 + +在本书编写时,已有三个 Rust 版本可用:Rust 2015、Rust 2018 与 Rust 2021。本书是用 Rust 2021 版本的习惯用语编写的。 + +`Cargo.toml` 中的 `edition` 键,表示应对咱们的代码使用哪个版本的编译器。若该键不存在,Rust 就会以向后兼容原因,而使用 `2015` 作为版本值。 + +每个项目都可以选择一个不同于默认 2015 的版本。这些版本可能包含了不兼容的变更,比如包含了与代码中标识符冲突的新关键字。但是,除非咱们选到这些变更,那么即使咱们更新了所使用的 Rust 编译器,咱们的代码将继续编译。 + +全部 Rust 编译器版本,都会支持先于那个编译器发布而存在的任何版本,且他们可将任何受支持版本的代码箱连接起来。版本变更只会影响编译器于编译初期解析代码的方式。因此,当咱们正使用着 Rust 2015,而咱们的一项依赖使用了 Rust 2018 时,咱们的项目将编译,并能够使用那项依赖。与之相反,在咱们的项目使用 Rust 2018,而一项依赖使用了 Rust 2015 的情形下,也会工作。 + +要明确的是:绝大多数特性,在所有版本上都将可用。使用任何 Rust 版本的开发者,都将在新的稳定发布构造出来时,发现一些改进。但是,在一些情况下,主要是在新曾了关键字时,一些新特性就会只在稍后版本中可用了。若咱们打算利用上这些新特性,咱们将需要切换版本。 + +有关更多细节,[版本指南,Edition Guide](https://doc.rust-lang.org/stable/edition-guide/) 是本列举了不同版本间差异,并解释了怎样通过 `cargo fix`,而自动将咱们的代码更新到新版的一本完整的书。 + + +## 附录 F - 本书的一些译本 + +<略> + +## 附录 G - Rust 是怎样构造出来的与每日发布 + +**How Rust is Made and "Nightly Rust"** + +