diff --git a/.travis.yml b/.travis.yml index 9f7930e..0dc3437 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,12 +3,12 @@ dist: trusty language: rust cache: cargo rust: - - beta # Change this to stable when Rust 1.31.0 is out + - 1.37.0 branches: only: - master before_script: - - (cargo install mdbook --vers 0.1.7 --force || true) + - (cargo install mdbook --vers 0.2.3 --force || true) script: - mdbook build - echo 'nojekyll' > book/.nojekyll diff --git a/book.toml b/book.toml index f3bcb0e..86cff4d 100644 --- a/book.toml +++ b/book.toml @@ -1,6 +1,6 @@ [book] title = "Rust 程序设计语言 简体中文版" -author = "Steve Klabnik 和 Carol Nichols,以及来自 Rust 社区的贡献,KaiserY 以及 Rust 中文社区翻译" +author = "Steve Klabnik 和 Carol Nichols,以及来自 Rust 社区的贡献(Rust 中文社区翻译)" description = "Rust 程序设计语言 简体中文版" [build-dir] diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 79923c4..75d7dd6 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -1,5 +1,6 @@ # Rust 程序设计语言 +[Rust 程序设计语言](title-page.md) [前言](foreword.md) [介绍](ch00-00-introduction.md) @@ -36,7 +37,7 @@ ## 基本 Rust 技能 -- [使用包、Crate和模块管理不断增长的项目](ch07-00-managing-growing-projects-with-packages-crates-and-modules.md) +- [使用包、Crate 和模块管理不断增长的项目](ch07-00-managing-growing-projects-with-packages-crates-and-modules.md) - [包和 crate](ch07-01-packages-and-crates.md) - [定义模块来控制作用域与私有性](ch07-02-defining-modules-to-control-scope-and-privacy.md) - [路径来引用模块树中的项](ch07-03-paths-for-referring-to-an-item-in-the-module-tree.md) diff --git a/src/ch10-02-traits.md b/src/ch10-02-traits.md index 601221c..63865f5 100644 --- a/src/ch10-02-traits.md +++ b/src/ch10-02-traits.md @@ -243,7 +243,7 @@ fn some_function(t: T, u: U) -> i32 这个函数签名就显得不那么杂乱,函数名、参数列表和返回值类型都离得很近,看起来类似没有很多 trait bounds 的函数。 -### 返回 trait +### 返回实现了 trait 的类型 也可以在返回值中使用 `impl Trait` 语法,来返回实现了某个 trait 的类型: diff --git a/src/title-page.md b/src/title-page.md new file mode 100644 index 0000000..77b6655 --- /dev/null +++ b/src/title-page.md @@ -0,0 +1,30 @@ +# Rust 程序设计语言 + +> [title-page.md](https://github.com/rust-lang/book/blob/master/src/title-page.md) +>
+> commit 636685fd35ca04a98fa73312d92eb2a46987ac96 + +**Steve Klabnik 和 Carol Nichols,以及来自 Rust 社区的贡献(Rust 中文社区翻译)** + +本书假设你使用 Rust 1.37.0 或更新的版本,且在所有的项目中的 *Cargo.toml* 文件中通过 `edition="2018"` 采用 Rust 2018 Edition 规范。请查看 [第一章的 “安装” 部分][install] 了解如何安装和升级 Rust,并查看新的 [附录 E][editions] 了解版本相关的信息。 + +Rust 程序设计语言的 2018 Edition 包含许多的改进使得 Rust 更为工程化并更为容易学习。本书的此次迭代包括了很多反映这些改进的修改: + +- 第七章 “使用包、Crate 和模块管理不断增长的项目” 基本上被重写了。模块系统和路径(path)的工作方式变得更为一致。 +- 第十章新增了名为 “trait 作为参数” 和 “返回实现了 trait 的类型” 部分来解释新的 `impl Trait` 语法。 +- 第十一章新增了一个名为 “在测试中使用 `Result`” 的部分来展示如何使用 `?` 运算符来编写测试 +- 第十九章的 “高级生命周期” 部分被移除了,因为编译器的改进使得其内容变得更为少见。 +- 之前的附录 D “宏” 得到了补充,包括了过程宏并移动到了第十九章的 “宏” 部分。 +- 附录 A “关键字” 也介绍了新的原始标识符(raw identifiers)功能,这使得采用 2015 Edition 编写的 Rust 代码可以与 2018 Edition 互通。 +- 现在的附录 D 名为 “实用开发工具”,它介绍了最近发布的可以帮助你编写 Rust 代码的工具。 +- 我们还修复了全书中许多错误和不准确的描述。感谢报告了这些问题的读者们! + +注意任何 “Rust 程序设计语言” 早期迭代中的代码在项目的 *Cargo.toml* 中不包含 `edition="2018"` 时仍可以继续编译,哪怕你更新了 Rust 编译器的版本。Rust 的后向兼容性保证了这一切可以正常运行! + +本书的 HTML 版本可以在 [https://doc.rust-lang.org/stable/book/](https://doc.rust-lang.org/stable/book/) ([简体中文译本](https://kaisery.github.io/trpl-zh-cn/))在线阅读,离线版则包含在通过 `rustup` 安装的 Rust 中;运行 `rustup docs --book` 可以打开。 + +本书的 [纸质版和电子书由 No Starch Press][nsprust] 发行。 + +[install]: ch01-01-installation.html +[editions]: appendix-05-editions.html +[nsprust]: https://nostarch.com/rust \ No newline at end of file