mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2025-04-09 13:58:06 +08:00
ch00
This commit is contained in:
parent
0ec7d73376
commit
99a94d85a3
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@ book/
|
||||
mdbook/
|
||||
|
||||
.DS_Store
|
||||
.idea
|
||||
|
@ -10,7 +10,7 @@
|
||||
- [Hello, World!](ch01-02-hello-world.md)
|
||||
- [Hello, Cargo!](ch01-03-hello-cargo.md)
|
||||
|
||||
- [猜猜看游戏教程](ch02-00-guessing-game-tutorial.md)
|
||||
- [猜数游戏教程](ch02-00-guessing-game-tutorial.md)
|
||||
|
||||
- [通用编程概念](ch03-00-common-programming-concepts.md)
|
||||
- [变量与可变性](ch03-01-variables-and-mutability.md)
|
||||
@ -22,7 +22,7 @@
|
||||
- [认识所有权](ch04-00-understanding-ownership.md)
|
||||
- [什么是所有权?](ch04-01-what-is-ownership.md)
|
||||
- [引用与借用](ch04-02-references-and-borrowing.md)
|
||||
- [Slices](ch04-03-slices.md)
|
||||
- [切片](ch04-03-slices.md)
|
||||
|
||||
- [使用结构体来组织相关联的数据](ch05-00-structs.md)
|
||||
- [定义并实例化结构体](ch05-01-defining-structs.md)
|
||||
@ -47,8 +47,8 @@
|
||||
- [哈希 map](ch08-03-hash-maps.md)
|
||||
|
||||
- [错误处理](ch09-00-error-handling.md)
|
||||
- [`panic!` 与不可恢复的错误](ch09-01-unrecoverable-errors-with-panic.md)
|
||||
- [`Result` 与可恢复的错误](ch09-02-recoverable-errors-with-result.md)
|
||||
- [不可恢复错误 `panic!`](ch09-01-unrecoverable-errors-with-panic.md)
|
||||
- [可恢复错误 `Result`](ch09-02-recoverable-errors-with-result.md)
|
||||
- [`panic!` 还是不 `panic!`](ch09-03-to-panic-or-not-to-panic.md)
|
||||
|
||||
- [泛型、trait 与生命周期](ch10-00-generics.md)
|
||||
@ -128,5 +128,4 @@
|
||||
- [C - 可导出的 trait](appendix-03-derivable-traits.md)
|
||||
- [D - 宏](appendix-04-macros.md)
|
||||
- [E - 本书翻译](appendix-05-translation.md)
|
||||
- [F - 最新功能](appendix-06-newest-features.md)
|
||||
- [G - Rust 是如何开发的与 “Nightly Rust”](appendix-07-nightly-rust.md)
|
||||
- [F - Rust 是如何开发的与 “Nightly Rust”](appendix-06-nightly-rust.md)
|
||||
|
@ -1 +0,0 @@
|
||||
# F - 最新功能
|
@ -2,7 +2,7 @@
|
||||
|
||||
> [ch00-00-introduction.md](https://github.com/rust-lang/book/blob/master/second-edition/src/ch00-00-introduction.md)
|
||||
> <br>
|
||||
> commit acc5ee25138531b030c6c4844de2b7066959021d
|
||||
> commit [068a3062e1518e3742dd70876de053765a66117c](https://github.com/rust-lang/book/commit/068a3062e1518e3742dd70876de053765a66117c)
|
||||
|
||||
欢迎阅读 “Rust 程序设计语言”,一本介绍 Rust 的书。
|
||||
|
||||
@ -26,11 +26,11 @@ Rust 也带来了用于系统编程世界的现代化开发工具:
|
||||
|
||||
### 学生
|
||||
|
||||
Rust 适用于学生或任何对操作系统概念感兴趣的人。通过 Rust,很多人已经了解了像操作系统开发这样的主题。社区非常欢迎并乐于解答学生们的问题。通过类似于本书这样的努力,Rust 团队希望操作系统的概念为更多人所知,特别是那些对编程比较陌生的人。
|
||||
Rust 适用于学生以及那些对系统概念感兴趣的人。很多人通过 Rust已经了解了像操作系统开发这样的主题。社区非常欢迎并乐于解答学生们的问题。通过像这样一本书努力,Rust 团队希望操作系统的概念为更多人所知,特别是那些对编程比较陌生的人。
|
||||
|
||||
### 公司
|
||||
|
||||
数以百计大大小小的公司正将 Rust 用于生产环境中的多种任务。这些任务包括命令行工具、web 服务、DevOps 工具、嵌入式设备、音视频分析与转码、数字货币(cryptocurrencies)、生物信息学(bioinformatics)、搜索引擎、物联网(internet of things, IOT)程序、机器学习,甚至还包括 Firefox 浏览器的大部分内容。
|
||||
数以百计大大小小的公司正将 Rust 用于生产环境中的各种任务中。这些任务包括命令行工具、web 服务、DevOps 工具、嵌入式设备、音视频分析与转码、数字货币(cryptocurrencies)、生物信息学(bioinformatics)、搜索引擎、物联网(internet of things, IOT)程序、机器学习,甚至还包括 Firefox 浏览器的大部分内容。
|
||||
|
||||
### 开源开发者
|
||||
|
||||
@ -44,23 +44,23 @@ Rust 适用于渴望编程语言的速度与稳定性的开发者。对于速度
|
||||
|
||||
## 谁会阅读本书
|
||||
|
||||
本书假设你已经使用其他编程语言编写过代码,但并不假设你使用了何种语言。我们尝试使材料能广泛的适用于来自很多不同编程背景的开发者。我们不会花费很多时间讨论编程 **是** 什么或者如何理解它。如果编程对于你来说是完全陌生的,你最好先阅读专门介绍编程的书籍。
|
||||
本书假设你已经使用其他编程语言编写过代码,但并不假设你使用了何种语言。我们尝试使素材能广泛的适用于来自很多不同编程背景的开发者。我们不会花费很多时间讨论什么 **是** 编程或者如何理解它。如果编程对于你来说是完全陌生的,你最好先阅读专门介绍编程的书籍。
|
||||
|
||||
## 如何阅读本书
|
||||
|
||||
总体来说,本书假设你会从头到尾顺序阅读。稍后的章节建立在之前章节概念的基础上,同时之前的章节可能不会深入挖掘主题的细节;通常稍后的章节会重新提到这些主题。
|
||||
总体来说,本书假设你会从头到尾顺序阅读。后面的章节建立在之前章节的概念基础上,同时前面的章节可能不会深入挖掘主题的细节;通常稍后的章节会重新提到这些主题。
|
||||
|
||||
你会在本书中发现两类章节:概念章节和项目章节。在项目章节中,我们学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建小的程序。第二、十二和二十章是项目章节;其余则是概念章节。
|
||||
你会在本书中发现两类章节:概念章节和项目章节。在概念章节中,我们将学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建一些小程序。第二、十二和二十章是项目章节;其余则是概念章节。
|
||||
|
||||
另外,第二章是一个 Rust 语言的介绍实践。我们会在高层次介绍一些概念,并在稍后的章节提供额外的细节。如果你希望立刻就动手实践一下,第二章正好适合你。开始阅读时,你甚至可能希望略过第三章,它介绍了 Rust 中类似其他编程语言中的功能,并直接阅读第四章学习 Rust 的所有权系统。然而,如果你是特别重视细节的学习者,并倾向于在继续之前学习每一个细节,你可能希望略过第二章并直接阅读第三章,并在想要构建项目来实践这些细节时再回到第二章。
|
||||
第一张介绍了如何安装 Rust ,怎样写一个 Hello, World! 程序,以及怎样使用 Rust 的包管理工具和构建工具 Cargo 。第二章是一个 Rust 语言的介绍。此处包含了一些高级概念,以及随后的章节中会提供额外的详细介绍。如果你希望立刻就动手实践一下,第二章正好适合你。刚开始时,你甚至可能希望略过第三章,这里介绍了 Rust 中和其他编程语言中相类似的功能,然后直接跳到第四章学习 Rust 的所有权系统。然而,如果你是特别重视细节的学习者,并倾向于在继续之前学习每一个细节,你可能希望略过第二章并直接阅读第三章,并在想要构建项目来实践这些细节时再回到第二章。
|
||||
|
||||
第五章讨论了结构体和方法,第六章涉及了枚举、`match` 表达式和 `if let` 控制流结构。你会使用结构体和枚举在 Rust 中创建自定义类型。
|
||||
第五章讨论了结构体和方法,第六章涉及了枚举、`match` 表达式和 `if let` 控制流结构。你会在 Rust 中使用结构体和枚举创建自定义类型。
|
||||
|
||||
第七章会学习 Rust 的模块系统和私有性规则来组织代码和公有应用程序设计接口(Application Programming Interface, API)。第八章讨论了一些标准库提供的通用集合数据结构,比如 vector、字符串和哈希 map。第九章探索了 Rust 的错误处理哲学和技术。
|
||||
|
||||
第十章深入理解泛型、trait 和生命周期,他们提供了定义可适用于多种类型的代码的能力。第十一章全部介绍测试,这即便在有 Rust 的安全保证来确保程序逻辑正确时仍然是必要的。第十二章,我们构建了属于自己的在文件中搜索文本的命令行工具 `grep` 的子集功能实现。为此会利用之前章节讨论的很多概念。
|
||||
第十章深入理解泛型、trait 和生命周期,他们提供了定义可适用于多种类型的代码的能力。第十一章全面介绍了测试,即便有 Rust 的安全保证,这在确保程序逻辑正确时仍然是必要的。第十二章,我们构建了属于自己的在文件中搜索文本的命令行工具 `grep` 的子功能实现。为此会使用之前章节讨论的很多概念。
|
||||
|
||||
第十三章探索了闭包和迭代器:Rust 中来自函数式编程语言的功能。第十四章会更深层次的理解 Cargo 并讨论向他人分享库的最佳实践。
|
||||
第十三章探索了闭包和迭代器:Rust 中来自函数式编程语言的功能。第十四章会更深层次的理解 Cargo 并讨论向他人分享库的最佳实践。第十五章讨论了标准库提供的智能指针以及trait的实用性。
|
||||
|
||||
第十六章会学习不同的并发编程模型并讨论 Rust 如何帮助你无畏的多线程开发。第十七章着眼于比较 Rust 风格与你可能熟悉的面向对象编程原则。
|
||||
|
||||
@ -72,7 +72,7 @@ Rust 适用于渴望编程语言的速度与稳定性的开发者。对于速度
|
||||
|
||||
怎样阅读本书都不会有任何问题:如果你希望略过一些内容,请继续!如果你发现疑惑可能会再跳回之前的章节。无论怎样都是可以的。
|
||||
|
||||
学习 Rust 的过程中一个重要的部分是学习如何阅读编译器提供的错误信息:它们会指导你编写代码。为此,我们会提供很多不能编译代码示例,以及各个情况下编译器会展示错误信息。请注意如果随便输入并运行随机的示例代码,它们可能无法编译!请确保阅读任何你尝试运行的示例周围的内容检视他们是否有意为错误的。在大部分情况,我们会指引你到达任何不能编译的代码的正确版本。
|
||||
学习 Rust 过程中一个重要的部分是学习如何阅读编译器提供的错误信息:它们会指导你编写代码。为此,我们会提供很多不能编译代码示例,以及各个情况下编译器会展示错误信息。请注意如果随便运行一个示例代码,它们可能无法编译!请确保阅读任何你尝试运行的示例周围的内容检视他们是否有意错误的。在大部分情况下,我们会把你从任何不能编译的代码指引到正确版本。
|
||||
|
||||
## 源代码
|
||||
|
||||
@ -82,4 +82,4 @@ Rust 适用于渴望编程语言的速度与稳定性的开发者。对于速度
|
||||
|
||||
> 译者注:本译本的 [GitHub 仓库][trpl-zh-cn],欢迎 Issue 和 PR :)
|
||||
|
||||
[trpl-zh-cn]: https://github.com/KaiserY/trpl-zh-cn
|
||||
[trpl-zh-cn]: https://github.com/Turing-Chu/trpl-zh-cn
|
||||
|
@ -1,14 +1,14 @@
|
||||
# 前言
|
||||
|
||||
> [foreword.md](https://github.com/rust-lang/book/blob/master/second-edition/src/foreword.md)
|
||||
> [foreword.md](https://github.com/rust-lang/book/blob/master/2018-edition/src/foreword.md)
|
||||
> <br>
|
||||
> commit 5e085bd1add34aec03416e891751552b439dde52
|
||||
> commit [acc5ee25138531b030c6c4844de2b7066959021d](https://github.com/rust-lang/book/commit/acc5ee25138531b030c6c4844de2b7066959021d)
|
||||
|
||||
事物并非总是简单明了,Rust 程序设计语言的本质在于 **授权**(*empowerment*):无论你现在编写的是何种代码,Rust 能授权你在更为广泛的编程领域走得更远,写出自信。
|
||||
事情并非总是那么清晰,但Rust 程序设计语言的本质在于 **授权**(*empowerment*):无论你现在编写的是何种代码,Rust 能授权你在更为广泛的编程领域走得更远,写出自信。
|
||||
|
||||
举例来说,“系统层面”(“systems-level”)处理内存管理、数据表示和并发的底层细节。这个编程领域被视为神秘的传统,只为数年专注学习所挑选出的少数人所触及,也只有他们能避免其恶名昭著的缺陷。即是谨慎的实践者,亦唯恐代码被利用、崩溃或损坏。
|
||||
例如,那些处理内存管理、数据表示和并发的底层细节的"系统级别"的工作。从传统上来说,这个编程领域是神秘的,只为那些投入了数年学习而挑选出的少数人所触及,也只有他们能避免其恶名昭著的缺陷。即使是谨慎的实践者,亦唯恐代码被利用、崩溃或损坏。
|
||||
|
||||
Rust 打破了这些障碍,其消除了旧的缺陷并提供了伴你一路同行的友好、精良的工具。想要 “深入” 底层控制的程序员可以使用 Rust,无需冒着常见的崩溃或安全漏洞的风险,也无需学习时常改变的工具链的最新知识。其语言本身更是被设计为自然而然的引导你编写出在运行速度和内存使用上都十分高效的可靠代码。
|
||||
Rust 打破了这些障碍,其消除了旧的缺陷并提供了伴你一路同行的友好、精良的工具集。那些想要 “深入” 底层控制的程序员可以使用 Rust,无需冒着经常性的崩溃或安全漏洞的风险,也无需学习时常改变的工具链的最新知识。其语言本身更是被设计为自然而然的引导你编写出在运行速度和内存使用上都十分高效的可靠代码。
|
||||
|
||||
已经在从事编写底层代码的程序员可以使用 Rust 来提升抱负。例如,在 Rust 中引入并行是相对较为低风险的操作:编译器会为你捕获经典的错误。同时你可以自信的采取更为激进的优化,而不会意外引入崩溃或漏洞。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user