docs: optimize readability for ch01-03-hello-cargo (#136)

This commit is contained in:
lalala-233 2023-04-12 06:59:36 +08:00 committed by GitHub
parent ff5c7afb29
commit cd3963b73b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -25,7 +25,7 @@ $ cd hello_cargo
进入 *hello_cargo* 目录并列出文件。将会看到 Cargo 生成了两个文件和一个目录:一个 *Cargo.toml* 文件,一个 *src* 目录,以及位于 *src* 目录中的 *main.rs* 文件。
它也在 *hello_cargo* 目录初始化了一个 Git 仓库,并带有一个 *.gitignore* 文件。如果在现有的 Git 仓库中运行 `cargo new`,则不会生成 Git 文件;你可以使用 `cargo new --vcs=git` 来覆盖此行为
它也在 *hello_cargo* 目录初始化了一个 Git 仓库,并带有一个 *.gitignore* 文件。如果在现有的 Git 仓库中运行 `cargo new`,则不会生成 Git 文件;但你可以使用 `cargo new --vcs=git` 来无视此限制,强制生成 Git 文件
> 注意Git 是一个常用的版本控制系统version control system VCS。可以通过 `--vcs` 参数使 `cargo new` 切换到其它版本控制系统,或者不使用 VCS。运行 `cargo new --help` 查看可用的选项。
@ -50,7 +50,7 @@ edition = "2021"
接下来的三行设置了 Cargo 编译程序所需的配置:项目的名称、版本,以及使用的 Rust 大版本号edition区别于 version。[附录 E][appendix-e]<!-- ignore --> 会介绍 `edition`译注Rust 的核心版本,即 2015、2018、2021 版等) 的值。
最后一行`[dependencies]` 是罗列项目依赖的表块的开始。在 Rust 中,代码包被称为 *crate*。这个项目并不需要其他的 crate不过在第 2 章的第一个项目会用到依赖,那时会用得上这个表块。
最后一行`[dependencies]` 是一个表块的开头,你可以在其中列出你的项目所依赖的任何包。在 Rust 中,代码包被称为 *crate*。这个项目并不需要其他的 crate不过在第 2 章的第一个项目会用到依赖,那时会用得上这个表块。
现在打开 *src/main.rs* 看看:
@ -64,7 +64,7 @@ fn main() {
Cargo 生成了一个 “Hello, world!” 程序,正如我们之前编写的示例 1-1到目前为止之前项目与 Cargo 生成项目的区别是Cargo 将代码放在 *src* 目录,同时项目根目录包含一个 *Cargo.toml* 配置文件。
Cargo 期望源文件存放在 *src* 目录中。项目根目录只存放说明文件README、许可协议license信息、配置文件和其他跟代码无关的文件。使用 Cargo 可帮助你保持项目干净整洁,一切井井有条
Cargo 期望源文件位于 *src* 目录中。项目根目录只存放说明文件README、许可协议license信息、配置文件和其他跟代码无关的文件。使用 Cargo 可帮助你保持项目干净整洁。这里为一切事物所准备,一切都位于正确的位置
对于没有使用 Cargo 开始的项目,比如我们之前创建的 Hello,world! 项目,你可以将其转化为一个 Cargo 项目。将代码放入 *src* 目录,并创建一个合适的 *Cargo.toml* 文件。
@ -78,16 +78,16 @@ $ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs
```
这个命令会创建一个可执行文件 *target/debug/hello_cargo* (在 Windows 上是 *target\debug\hello_cargo.exe*),而不是放在目前目录下。可以通过这个命令运行可执行文件
这个命令会*target/debug/hello_cargo* 下创建一个可执行文件(在 Windows 上是 *target\debug\hello_cargo.exe*),而不是放在目前目录下。你可以使用下面的命令来运行它
```console
$ ./target/debug/hello_cargo # 或者在 Windows 下为 .\target\debug\hello_cargo.exe
Hello, world!
```
如果一切顺利,终端上应该会打印出 `Hello, world!`。首次运行 `cargo build` 时,也会使 Cargo 在项目根目录创建一个新文件:*Cargo.lock*。这个文件记录项目依赖的实际版本。这个项目并没有依赖,所以其内容比较少。你自己永远也不需要碰这个文件,让 Cargo 处理它就行了
如果一切顺利,终端上应该会打印出 `Hello, world!`。首次运行 `cargo build` 时,也会使 Cargo 在项目根目录创建一个新文件:*Cargo.lock*。这个文件记录项目依赖的实际版本。这个项目并没有依赖,所以其内容比较少。您不需要手动更改这个文件Cargo 会为您管理好它
我们刚刚使用 `cargo build` 构建了项目,并使用 `./target/debug/hello_cargo` 运行了程序,也可以使用 `cargo run` 在一个命令中同时编译代码并运行生成的可执行文件
我们刚刚使用 `cargo build` 构建了项目,并使用 `./target/debug/hello_cargo` 运行了程序,但是,我们也可以使用 `cargo run` 命令,一次性完成代码编译和运行的操作
```console
$ cargo run
@ -114,14 +114,14 @@ $ cargo check
Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs
```
为什么你会不需要可执行文件呢?通常 `cargo check` 要比 `cargo build` 快得多,因为它省略了生成可执行文件的步骤。如果你在编写代码时持续的进行检查,`cargo check` 会加速开发!为此很多 Rustacean 编写代码时定期运行 `cargo check` 确保它们可以编译。当准备好使用可执行文件时才运行 `cargo build`
为什么你会不需要可执行文件呢?通常`cargo check` 要比 `cargo build` 快得多,因为它省略了生成可执行文件的步骤。如果你在编写代码时不断检查你的代码,那么使用 `cargo check` 命令可以加快这个过程!为此很多 Rustacean 编写代码时会定期运行 `cargo check`确保它们可以编译。当准备好使用可执行文件时才运行 `cargo build`
我们回顾下已学习的 Cargo 内容:
- 可以使用 `cargo build` 构建项目。
- 可以使用 `cargo run` 一步构建并运行项目。
- 可以使用 `cargo check` 构建项目而无需生成二进制文件来检查错误。
- 有别于将构建结果放在与源码相同的目录Cargo 会将其放到 _target/debug_ 目录。
- Cargo 会将构建结果保存到 *target/debug* 目录,而不是源码所在的目录。
使用 Cargo 的一个额外的优点是,不管你使用什么操作系统,其命令都是一样的。所以从现在开始本书将不再为 Linux 、macOS 或 Windows 提供平台特定的命令。
@ -129,9 +129,9 @@ $ cargo check
当项目最终准备好发布时,可以使用 `cargo build --release` 来优化编译项目。这会在 *target/release* 而不是 *target/debug* 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。这也就是为什么会有两种不同的配置:一种是为了开发,你需要经常快速重新构建;另一种是为用户构建最终程序,它们不会经常重新构建,并且希望程序运行得越快越好。如果你要对代码运行时间进行基准测试,请确保运行 `cargo build --release` 并使用 *target/release* 下的可执行文件进行测试。
### 使用 Cargo 当作习惯
### 使用 Cargo 当作习惯
对于简单项目 Cargo 并不比 `rustc` 有更多的优势,不过随着开发的深入,终将证明其价值。对于拥有多个 crate 的复杂项目,交给 Cargo 来协调构建将简单得多。
对于简单项目而言,使用 Cargo 和直接使用 `rustc` 相比并没有太大的优势,但是在程序变得更加复杂时,它会证明自己的价值。对于拥有多个 crate 的复杂项目,交给 Cargo 来协调构建将简单得多。
尽管 `hello_cargo` 项目很简单,其所使用的很多实用工具,在你将来的 Rust 生涯中也会用得到。其实,要在已存在的项目上构建,可以使用以下命令,通过 Git 检出代码,进入到该项目目录并构建:
@ -153,7 +153,7 @@ $ cargo build
- 更新到新版的 Rust
- 打开本地安装的文档
- 直接通过 `rustc` 编写并运行 “Hello, world!” 程序
- 使用更常用的 Cargo 创建并运行新项目
- 使用 Cargo 的惯例来创建和运行一个新项目
是时候通过构建更强大的程序来熟悉阅读和编写 Rust 代码了。所以在第 2 章,我们会构建一个猜数字游戏程序。如果你更希望从学习 Rust 常用的编程概念开始,请阅读第 3 章,接着再回到第 2 章。