@ -1,8 +1,7 @@
# 简介
# 简介
> [ch00-00-introduction.md ](https://github.com/rust-lang/book/blob/main/src/ch00-00-introduction.md )
<!-- https://github.com/rust - lang/book/blob/main/src/ch00 - 00 - introduction.md -->
> < br >
<!-- commit 56ec353290429e6547109e88afea4de027b0f1a9 -->
> commit 1fb74c3f1d8aeba39373e9f4cdb9a4bdca95604f
> 注意:此书的英文原版与 [No Starch Press][nsp] 出版的《[The Rust Programming Language][nsprust]》纸质版和电子版一致。
> 注意:此书的英文原版与 [No Starch Press][nsp] 出版的《[The Rust Programming Language][nsprust]》纸质版和电子版一致。
@ -17,8 +16,7 @@ Rust 因多种原因适合许多人。让我们看看几个最重要的群体。
### 开发者团队
### 开发者团队
Rust 已证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的工具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测试和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间集中在程序逻辑上,而不是追踪 bug。
Rust 已被证明是一个对于具有不同系统编程知识水平的大型开发团队协作而言,非常高效的工具。底层代码容易出现各种微妙的错误,在大多数其他语言中,这些错误只能通过广泛的测试和经验丰富的开发者的仔细审核代码来捕捉。在 Rust 中,编译器充当了守门员的角色,拒绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间集中在程序逻辑上,而不是追踪 bug。
Rust 也为系统编程世界带来了现代化的开发工具:
Rust 也为系统编程世界带来了现代化的开发工具:
@ -48,11 +46,11 @@ Rust 适合那些渴望在编程语言中寻求速度与稳定性的开发者。
## 本书适合哪些人
## 本书适合哪些人
本书假设你已经有其他编程语言的经验,任何语言均可,我们尽可能 让各种语言背景的人都能读懂。本书的重点不是程序设计**本身**,也不是程序设计思维。如果你完全没学过编程,建议你先阅读专门介绍程序设计的书籍。
本书假设你已经有其他编程语言的经验,任何语言均可,我们力求 让各种语言背景的人都能读懂。本书的重点不是程序设计**本身**,也不是程序设计思维。如果你完全没学过编程,建议你先阅读专门介绍程序设计的书籍。
## 如何阅读本书
## 如何阅读本书
本书大体上假设您 按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。
本书大体上假设你 按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。
本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建小型程序。第二、十二和二十一章是项目章节;其余都是概念章节。
本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建小型程序。第二、十二和二十一章是项目章节;其余都是概念章节。
@ -64,19 +62,17 @@ Rust 适合那些渴望在编程语言中寻求速度与稳定性的开发者。
第十章深入介绍泛型( generic) 、Trait 和生命周期( lifetime) , 这些功能让你能够定义适用于多种类型的代码。第十一章全面讲述了测试, 因为就算 Rust 有安全保证,也需要测试确保程序逻辑正确。第十二章中将会构建我们自己的 `grep` 命令行工具的功能子集实现,用于在文件中搜索文本。为此会用到之前章节讨论的很多概念。
第十章深入介绍泛型( generic) 、Trait 和生命周期( lifetime) , 这些功能让你能够定义适用于多种类型的代码。第十一章全面讲述了测试, 因为就算 Rust 有安全保证,也需要测试确保程序逻辑正确。第十二章中将会构建我们自己的 `grep` 命令行工具的功能子集实现,用于在文件中搜索文本。为此会用到之前章节讨论的很多概念。
第十三章探索闭包( closure) 和迭代器( iterator) , 这两个 Rust 特性来自函数式编程语言。第十四章会深入探讨 Cargo 并介绍分享代码库的最佳实践。第十五章讨论标准库提供的智能指针以及相关的 T rait。
第十三章探索闭包( closure) 和迭代器( iterator) , 这两个 Rust 特性来自函数式编程语言。第十四章会深入探讨 Cargo 并介绍分享代码库的最佳实践。第十五章讨论标准库提供的智能指针以及相关的 t rait。
第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量级并发模型。
第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量级并发模型。
第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP( 面向对象编程) 原则之间的比较。
第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP( 面向对象编程) 原则之间的比较。第十九章是一个模式和模式匹配的参考, 它们是在 Rust 程序中表达思想的有效方式。第二十章是一个高级主题大杂烩,包括不安全 Rust( unsafe Rust) 、宏( macro) 和更多关于生命周期、Trait、类型、函数和闭包的内容。
第十九章介绍模式和模式匹配,它是在 Rust 程序中表达思想的有效方式。第二十章是一个高级主题大杂烩,包括不安全 Rust( unsafe Rust) 、宏( macro) 和更多关于生命周期、Trait、类型、函数和闭包的内容。
第二十一章我们将会完成一个项目,实现一个底层的、多线程的 Web 服务器 !
第二十一章我们将会完成一个项目,实现一个底层多线程的 Web 服务端!
最后的附录包含了一些关于该语言的实用信息,其格式更像是参考资料。附录 A 涵盖了 Rust 的关键字,附录 B 涵盖了 Rust 的运算符和符号,附录 C 涵盖了标准库提供的可派生 T rait, 附录 D 涵盖了一些有用的开发工具,而附录 E 解释了 Rust 版本。在附录 F 中,你可以找到本书的翻译版本,而在附录 G 中,我们将讨论 Rust 是如何制作的以及什么是 nightly Rust。
最后的附录包含了一些关于该语言的实用信息,其格式更像是参考资料。附录 A 涵盖了 Rust 的关键字,附录 B 涵盖了 Rust 的运算符和符号,附录 C 涵盖了标准库提供的可派生 t rait, 附录 D 涵盖了一些有用的开发工具,而附录 E 解释了 Rust 版本。在附录 F 中,你可以找到本书的翻译版本,而在附录 G 中,我们将讨论 Rust 是如何制作的以及什么是 nightly Rust。
阅读本书没有错误的方式:如果你想跳过前面的内容,尽管跳过!如果你遇到任何困惑,可能需要回到前面的章节。请采取对你最有效的方式。
阅读本书没有错误的方式:如果你想跳过前面的内容,尽管跳过!如果你遇到任何困惑,可能需要回到前面的章节。请采取对你最有效的方式进行阅读 。
< span id = "ferris" > < / span >
< span id = "ferris" > < / span >