mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2025-05-24 02:28:07 +08:00
wip: 2024 edition
This commit is contained in:
parent
65ac464b86
commit
ebeb5156fb
@ -1,8 +1,7 @@
|
||||
# 入门指南
|
||||
|
||||
> [ch01-00-getting-started.md](https://github.com/rust-lang/book/blob/main/src/ch01-00-getting-started.md)
|
||||
> <br>
|
||||
> commit 1fedfc4b96c2017f64ecfcf41a0a07e2e815f24f
|
||||
<!-- https://github.com/rust-lang/book/blob/main/src/ch01-00-getting-started.md -->
|
||||
<!-- commit 3a30e4c1fbe641afc066b3af9eb01dcdf5ed8b24 -->
|
||||
|
||||
让我们开始 Rust 之旅!有很多内容需要学习,但每次旅程总有起点。在本章中,我们会讨论:
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
## 安装
|
||||
|
||||
> [ch01-01-installation.md](https://github.com/rust-lang/book/blob/main/src/ch01-01-installation.md) <br>
|
||||
> commit d5eb2f7a8e9c6f51b4478f9cd46f55448e2ca2c1
|
||||
<!-- https://github.com/rust-lang/book/blob/main/src/ch01-01-installation.md -->
|
||||
<!-- a4f94174155ff413f23af936c3a31ab71f11cb6f -->
|
||||
|
||||
第一步是安装 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
|
||||
|
@ -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)
|
||||
> <br>
|
||||
> commit 1fb74c3f1d8aeba39373e9f4cdb9a4bdca95604f
|
||||
<!-- https://github.com/rust-lang/book/blob/main/src/ch01-02-hello-world.md -->
|
||||
<!-- commit aba1ee29dca6c90a1737c996efd7c870957aefb8 -->
|
||||
|
||||
既然安装好了 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() {
|
||||
</figure>
|
||||
|
||||
|
||||
保存文件,并回到当前目录为“~/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`<!-- ignore -->)。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
|
||||
|
Loading…
Reference in New Issue
Block a user