Skip to content

Commit

Permalink
update ch00-00 use GPTs
Browse files Browse the repository at this point in the history
  • Loading branch information
KaiserY committed Feb 29, 2024
1 parent a2a489a commit a6f059a
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions src/ch00-00-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,43 +42,45 @@ Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的

### 重视速度和稳定性的开发者

Rust 适合追求编程语言的速度与稳定性的开发者。对于速度来说,既是指 Rust 可以运行的多快,也是指编写 Rust 程序的速度。Rust 编译器会检查代码,确保增加功能、重构代码时的稳定性。与之相比,其他的一些语言没有检查功能,导致开发者往往不敢修改脆弱的祖传代码。Rust 力求将高级语言特性编译成底层代码,并且与手写的代码运行速度同样快,这一概念称为零开销抽象(zero-cost abstractions),可以让代码又安全又快速
Rust 适合那些渴望在编程语言中寻求速度与稳定性的开发者。对于速度来说,既是指 Rust 可以运行的多快,也是指编写 Rust 程序的速度。Rust 编译器的检查确保了增加功能和重构代码时的稳定性,这与那些缺乏这些检查的语言中脆弱的祖传代码形成了鲜明对比,开发者往往不敢去修改这些代码。通过追求零成本抽象(zero-cost abstractions)—— 将高级语言特性编译成底层代码,并且与手写的代码运行速度同样快。Rust 努力确保代码又安全又快速

这里提到的只是较大的几个受益群体,Rust 语言也希望能支持更多其他用户。总之,Rust 最重要的目标是消除数十年来程序员习以为常的取舍,让安全和高效、速度和易读易用**可以兼得**。试试看 Rust,说不定它的选择就适合你。
这里提到的只是几个较大的受益群体,Rust 语言也希望能支持更多其他用户。总的来说,Rust 最重要的目标是消除数十年来程序员习以为常的取舍,让安全和高效、速度和易读易用**可以兼得**。试试看 Rust,说不定它的选择就适合你。

## 本书适合哪些人

本书假设你已经有其他编程语言的经验,任何语言均可,我们尽可能让各种语言背景的人都能读懂。本书的重点不是程序设计**本身**,也不是程序设计思维。如果你完全没学过编程,建议你先阅读专门介绍程序设计的书籍。

## 如何阅读本书

本书大体上假设您按从头到尾的顺序阅读。后面的章节建立于前面章节的基础上。前面的章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。
本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。

本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建小型程序。第 2、1220 章是项目章节;其余都是概念章节。
本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项目章节中,我们应用目前所学的知识一同构建小型程序。第 2、1220 章是项目章节;其余都是概念章节。

第 1 章介绍如何安装 Rust,如何编写 “Hello, world!” 程序,以及如何使用 Rust 的包管理器和构建工具 Cargo。第 2 章是一个编写 Rust 语言的实战介绍,我们会构建一个猜猜看游戏。我们会站在较高的层次介绍一些概念,而将详细的介绍放在稍后的章节中。如果你希望立刻就动手实践一下,第 2 章正好适合你。第 3 章介绍 Rust 中类似其他编程语言的特性,你可以选择跳过,直接阅读第 4 章学习 Rust 的所有权(ownership)系统。不过,如果你注重细节,可以跳过第 2 章直接看第 3 章,之后想要写项目的时候再回来看第 2 章。
第 1 章介绍如何安装 Rust,如何编写一个 “Hello, world!” 程序,以及如何使用 Rust 的包管理器和构建工具 Cargo。第 2 章是一个编写 Rust 语言的实战介绍,我们会构建一个猜数字游戏。我们会站在较高的层次介绍一些概念,而后续章节将提供更多细节。如果你希望立刻就动手实践一下,第 2 章是开始的好地方。第 3 章介绍 Rust 中类似其他编程语言的特性, 4 章会学习 Rust 的所有权系统。如果你是一个特别细致的学习者,喜欢在进入下一环节之前学习每一个细节,你可能会想要跳过第 2 章,直接阅读第 3 章,等到你想要通过项目应用所学到的细节时再回到第 2 章。

第 5 章讨论结构体(struct)和方法,第 6 章介绍枚举(enum)、`match` 表达式和 `if let` 控制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。

第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理技术和理念
第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术

第 10 章深入介绍泛型(generic)、Trait 和生命周期(lifetime),用这些特性可以写出适用多种类型的代码。第 11 章介绍测试,因为就算 Rust 有安全保证,也需要测试确保程序逻辑正确。`grep` 命令可以查找文件中的文本,第 12 章中我们将会构建一个命令行工具实现它的部分功能,为此会用到之前章节讨论的很多概念。
第 10 章深入介绍泛型(generic)、Trait 和生命周期(lifetime),这些功能让你能够定义适用于多种类型的代码。第 11 章全面讲述了测试,,因为就算 Rust 有安全保证,也需要测试确保程序逻辑正确。第 12 章中将会构建我们自己的 `grep` 命令行工具的功能子集实现,用于在文件中搜索文本。为此会用到之前章节讨论的很多概念。

第 13 章探索闭包(closure)和迭代器(iterator),这两个特性来自函数式编程语言。第 14 章会深入探讨 Cargo 并介绍分享代码库的最佳实践。第 15 章讨论标准库提供的智能指针以及相关的 Trait。
第 13 章探索闭包(closure)和迭代器(iterator),这两个 Rust 特性来自函数式编程语言。第 14 章会深入探讨 Cargo 并介绍分享代码库的最佳实践。第 15 章讨论标准库提供的智能指针以及相关的 Trait。

第 16 章介绍几类并发编程模型,并讨论 Rust 如何助你无畏地编写多线程程序。第 17 章着眼于比较 Rust 风格与 OOP(面向对象编程)原则。
第 16 章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编程。第 17 章着眼于比较 Rust 风格与 OOP(面向对象编程)原则。

第 18 章介绍模式和模式匹配,它是在 Rust 程序中表达思想的有效方式。第 19 章是一个高级主题大杂烩,包括不安全 Rust(unsafe Rust)、宏(macro)和更多关于生命周期、Trait、类型、函数和闭包的内容。

第 20 章我们将会完成一个项目,实现一个底层的、多线程的网络服务器
第 20 章我们将会完成一个项目,实现一个底层的、多线程的 Web 服务器

最后的附录包含一些实用信息,格式类似参考文档。附录 A 介绍 Rust 的关键字,附录 B 介绍 Rust 的运算符和符号,附录 C 介绍标准库提供的可派生 Trait,附录 D 涉及一些有用的开发工具,附录 E 介绍 Rust 的不同版本
最后的附录包含一些语言相关的实用信息,格式类似参考文档。

本书没有错误的阅读方式,可以尽管跳过部分内容,遇到困惑时再回看前面的章节。
最后的附录包含了一些关于该语言的实用信息,其格式更像是参考资料。附录 A 涵盖了 Rust 的关键字,附录 B 涵盖了 Rust 的运算符和符号,附录 C 涵盖了标准库提供的可派生 Trait,附录 D 涵盖了一些有用的开发工具,而附录 E 解释了 Rust 版本。在附录 F 中,你可以找到本书的翻译版本,而在附录 G 中,我们将讨论 Rust 是如何制作的以及什么是 nightly Rust。

阅读本书没有错误的方式:如果你想跳过前面的内容,尽管跳过!如果你遇到任何困惑,可能需要回到前面的章节。请采取对你最有效的方式。

<span id="ferris"></span>

学习 Rust 的一个重点在于了解如何阅读编译器提供的错误信息,它们会指导你编写出能运行的代码。为此,我们会提供很多无法通过编译的示例,并附上错误信息。运行示例代码的时候务必阅读上下文,看看这段代码是否是故意写错的,部分示例代码就是无法编译的!Ferris 也会帮助你分辨哪些代码是故意写错的
学习 Rust 的一个重要部分是学会如何阅读编译器显示的错误信息:它们会指引你编写出能运行的代码。为此,我们将提供许多不能编译的示例,以及在每种情况下编译器将显示的错误信息。请知悉,如果你输入并运行一个随机示例,它可能无法编译!确保你阅读了示例周围的文本,以判断你尝试运行的示例是否意在出错。Ferris 也将帮助你区分那些不是意在工作的代码

| Ferris | 含义 |
|---------------------------------------------------------------------------------------------------------|--------------------------------|
Expand Down

0 comments on commit a6f059a

Please sign in to comment.