diff --git a/src/ch01-00-getting-started.md b/src/ch01-00-getting-started.md index f3d9934..86b2b06 100644 --- a/src/ch01-00-getting-started.md +++ b/src/ch01-00-getting-started.md @@ -1,8 +1,7 @@ # 入门指南 -> [ch01-00-getting-started.md](https://github.com/rust-lang/book/blob/main/src/ch01-00-getting-started.md) ->
-> commit 1fedfc4b96c2017f64ecfcf41a0a07e2e815f24f + + 让我们开始 Rust 之旅!有很多内容需要学习,但每次旅程总有起点。在本章中,我们会讨论: diff --git a/src/ch01-01-installation.md b/src/ch01-01-installation.md index 99d7680..24854ec 100644 --- a/src/ch01-01-installation.md +++ b/src/ch01-01-installation.md @@ -1,7 +1,7 @@ ## 安装 -> [ch01-01-installation.md](https://github.com/rust-lang/book/blob/main/src/ch01-01-installation.md)
-> commit d5eb2f7a8e9c6f51b4478f9cd46f55448e2ca2c1 + + 第一步是安装 Rust。我们会通过 `rustup` 下载 Rust,这是一个管理 Rust 版本和相关工具的命令行工具。下载时需要联网。 @@ -11,7 +11,7 @@ > ### 命令行标记 > -> 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 `$` 开头。你不需要输入`$`字符;这里显示的`$`字符表示命令行提示符,仅用于提示每行命令的起点。不以 `$` 起始的行通常展示前一个命令的输出。另外,PowerShell 专用的示例会采用 `>` 而不是 `$`。 +> 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 `$` 开头。你不需要输入 `$` 字符;这里显示的 `$` 字符表示命令行提示符,仅用于提示每行命令的起点。不以 `$` 起始的行通常展示前一个命令的输出。另外,PowerShell 专用的示例会采用 `>` 而不是 `$`。 ### 在 Linux 或 macOS 上安装 `rustup` @@ -27,7 +27,7 @@ $ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh Rust is installed now. Great! ``` -另外,你还需要一个 *链接器(linker)*,这是 Rust 用来将其编译的输出连接到一个文件中的程序。很可能你已经有一个了。如果你遇到了链接器错误,请尝试安装一个 C 编译器,它通常包括一个链接器。C 编译器也很有用,因为一些常见的 Rust 包依赖于 C 代码,因此需要安装一个 C 编译器。 +另外,你还需要一个 *链接器(linker)*,这是 Rust 用来将其编译的输出连接成一个文件中的程序。很可能你已经有一个了。如果你遇到了链接器错误,请尝试安装一个 C 编译器,它通常包括一个链接器。C 编译器也很有用,因为一些常见的 Rust 包依赖于 C 代码,因此需要安装一个 C 编译器。 在 macOS 上,你可以通过运行以下命令获得 C 语言编译器: @@ -57,11 +57,7 @@ $ rustc --version rustc x.y.z (abcabcabc yyyy-mm-dd) ``` -如果看到了这样的信息,就说明 Rust 已经安装成功了! - -> 译者:恭喜入坑!(此处应该有掌声!) - -如果没看到,请按照下面说明的方法检查 Rust 是否在您的 `%PATH%` 系统变量中。 +如果看到了这样的信息,就说明 Rust 已经安装成功了!如果没看到,请按照下面说明的方法检查 Rust 是否在您的 `%PATH%` 系统变量中。 在 Windows CMD 中,请使用命令: @@ -85,7 +81,7 @@ $ echo $PATH ## 更新与卸载 -通过 `rustup` 安装了 Rust 之后,更新到最新版本就很简单了,只需要在您对应的命令行中运行如下更新脚本: +通过 `rustup` 安装了 Rust 之后,更新到最新版本就很简单了。只需要在您对应的命令行中运行如下更新脚本: ```console $ rustup update @@ -103,7 +99,24 @@ $ rustup self uninstall 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口(application programming interface,API)文档! +### 文本编辑器和集成开发环境(Integrated Development Environments, IDE) + +本书不会假设你使用何种工具来编写 Rust 代码。几乎任何文本编辑器都可以搞定!然而,很多文本编辑器和集成开发环境(IDE)内置了 Rust 支持。你总是可以在 Rust 官网的[工具页面][tools]找到很多相对流行的编辑器和 IDE 列表。 + +### 离线使用本书 + +在很多示例中,我们会使用多于标准库的 Rust 包。为了处理这些示例,要么需要网络连接要么需要提前下载这些依赖。为了提前下载这些依赖,可以运行如下命令。(我们稍后会详细解释 `cargo` 是什么以及这每一个命令在干什么。) + +```console +$ cargo new get-dependencies +$ cd get-dependencies +$ cargo add rand@0.8.5 trpl@0.2.0 +``` + +这会缓存这些包的下载所以之后你不用再下载它们。一旦你运行了这些命令,就可以在本书之后所有的 `cargo` 命令中使用 `--offline` 参数来使用这些缓存的版本而不是尝试使用网络。 + [otherinstall]: https://forge.rust-lang.org/infra/other-installation-methods.html [install]: https://www.rust-lang.org/tools/install [msvc]: https://rust-lang.github.io/rustup/installation/windows-msvc.html [community]: https://www.rust-lang.org/community +[tools]: https://www.rust-lang.org/tools diff --git a/src/ch01-02-hello-world.md b/src/ch01-02-hello-world.md index baec2d5..77c0654 100644 --- a/src/ch01-02-hello-world.md +++ b/src/ch01-02-hello-world.md @@ -1,8 +1,7 @@ ## Hello, World! -> [ch01-02-hello-world.md](https://github.com/rust-lang/book/blob/main/src/ch01-02-hello-world.md) ->
-> commit 1fb74c3f1d8aeba39373e9f4cdb9a4bdca95604f + + 既然安装好了 Rust,是时候来编写第一个 Rust 程序了。当学习一门新语言的时候,使用该语言在屏幕上打印 `Hello, world!` 是一项传统,我们将沿用这一传统! @@ -25,7 +24,7 @@ $ cd hello_world 对于 Windows CMD,输入: -```doscon +```cmd > mkdir "%USERPROFILE%\projects" > cd /d "%USERPROFILE%\projects" > mkdir hello_world @@ -53,7 +52,7 @@ fn main() { -保存文件,并回到当前目录为“~/projects/hello_world”的终端窗口。在 Linux 或 macOS 上,输入如下命令,编译并运行文件: +保存文件,并回到当前目录为 *~/projects/hello_world* 的终端窗口。在 Linux 或 macOS 上,输入如下命令,编译并运行文件: ```console $ rustc main.rs @@ -65,7 +64,7 @@ Hello, world! ```powershell > rustc main.rs -> .\main.exe +> .\main Hello, world! ``` @@ -73,7 +72,7 @@ Hello, world! 如果 `Hello, world!` 出现了,恭喜你!你已经正式编写了一个 Rust 程序。现在你成为一名 Rust 程序员,欢迎! -### 分析这个 Rust 程序 +### Rust 程序的结构 现在,让我们回过头来仔细看看这个 “Hello, world!” 程序。这是第一块拼图: @@ -89,19 +88,19 @@ fn main() { > 注:如果你希望在 Rust 项目中保持一种标准风格,可以使用名为 `rustfmt` 的自动格式化工具将代码格式化为特定的风格(更多内容详见[附录 D][devtools] 中的 `rustfmt`)。Rust 团队已经在标准的 Rust 发行版中包含了这个工具,就像 `rustc` 一样。所以它应该已经安装在你的电脑中了! -在 `main` 函数中有如下代码: +在 `main` 函数体中有如下代码: ```rust - println!("Hello, world!"); +println!("Hello, world!"); ``` -这行代码完成这个简单程序的所有工作:在屏幕上打印文本。这里有四个重要的细节需要注意。首先 Rust 的缩进风格使用 4 个空格,而不是 1 个制表符(tab)。 +这行代码完成这个简单程序的所有工作:在屏幕上打印文本。这里有三个重要的细节需要注意。 -第二,`println!` 调用了一个 Rust 宏(macro)。如果是调用函数,则应输入 `println`(没有`!`)。我们将在第二十章详细讨论宏。现在你只需记住,当看到符号 `!` 的时候,就意味着调用的是宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。 +首先,`println!` 调用了一个 Rust 宏(macro)。如果是调用函数,则应输入 `println`(没有`!`)。我们将在[第二十章][ch20-macros]详细讨论宏。现在你只需记住,当看到符号 `!` 的时候,就意味着调用的是宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。 -第三,`"Hello, world!"` 是一个字符串。我们把这个字符串作为一个参数传递给 `println!`,字符串将被打印到屏幕上。 +第二,`"Hello, world!"` 是一个字符串。我们把这个字符串作为一个参数传递给 `println!`,字符串将被打印到屏幕上。 -第四,该行以分号结尾(`;`),这代表一个表达式的结束和下一个表达式的开始。大部分 Rust 代码行以分号结尾。 +第三,该行以分号结尾(`;`),这代表一个表达式的结束和下一个表达式可以开始。大部分 Rust 代码行以分号结尾。 ### 编译和运行是彼此独立的步骤 @@ -122,9 +121,9 @@ $ ls main main.rs ``` -在 Linux 和 macOS,你会看到两个文件。在 Windows PowerShell 中,你会看到同使用 CMD 相同的三个文件。在 Windows 的 CMD 上,则输入如下内容: +在 Linux 和 macOS,你会看到两个文件。在 Windows PowerShell 中,你会看到同使用 CMD 相同的三个文件。在 Windows 的 CMD 上,则输入如下命令: -```doscon +```cmd > dir /B %= the /B option says to only show the file names =% main.exe main.pdb @@ -145,3 +144,4 @@ $ ./main # Windows 是 .\main.exe [troubleshooting]: ch01-01-installation.html#故障排除troubleshooting [devtools]: appendix-04-useful-development-tools.html +[ch20-macros]: ch20-05-macros.html