mirror of
https://github.com/KaiserY/trpl-zh-cn
synced 2024-11-14 21:11:31 +08:00
Merge pull request #238 from xiaohulu/master
update ch01-01-installation.md and delete ch01-00-introduction.md
This commit is contained in:
commit
02e342764b
@ -1,25 +0,0 @@
|
||||
# 介绍
|
||||
|
||||
> [ch01-00-introduction.md](https://github.com/rust-lang/book/blob/master/second-edition/src/ch01-00-introduction.md)
|
||||
> <br>
|
||||
> commit d06a6a181fd61704cbf7feb55bc61d518c6469f9
|
||||
|
||||
欢迎阅读 “Rust 程序设计语言”,一本介绍 Rust 的书。Rust 是一门着眼于安全、速度和并发的编程语言。其程序设计兼顾底层语言的性能与控制,并不失高级语言强大的抽象能力。其特性适合那些有类 C 语言经验,正在寻找更安全的替代品的开发者;同样适合有着类 Python 语言背景,寻求在不牺牲表现力的前提下,编写更高性能代码的开发者。
|
||||
|
||||
Rust 编译时执行绝大部分的安全检查和内存管理决策,对运行时性能的影响微不足道。这使其在其他语言不擅长的应用场景中得以大显身手:可预测时间和空间需求的程序,嵌入到其他语言中,以及编写如设备驱动和操作系统这样的底层代码。Rust 也很擅长 web 程序:它驱动着 Rust 包登记网站(package
|
||||
registry site),[crates.io]!我们由衷期待**你**使用 Rust 进行创作。
|
||||
|
||||
[crates.io]: https://crates.io/
|
||||
|
||||
本书的目标读者至少应了解一门其它编程语言。阅读本书之后,你应该能自如的编写 Rust 程序。我们将通过短小精干、前后呼应的例子来学习 Rust,并展示其多样功能的使用方法,同时了解它们幕后如何运行。
|
||||
|
||||
## 为本书做出贡献
|
||||
|
||||
本书是开源的。如果你发现任何错误,不要犹豫,[在 GitHub 上][on GitHub]发起 issue 或提交 pull request。请查看 [CONTRIBUTING.md] 获取更多信息。
|
||||
|
||||
[on GitHub]: https://github.com/rust-lang/book
|
||||
[CONTRIBUTING.md]: https://github.com/rust-lang/book/blob/master/CONTRIBUTING.md
|
||||
|
||||
> 译者注:本译本的 [GitHub 仓库][trpl-zh-cn],同样欢迎 Issue 和 PR :)
|
||||
|
||||
[trpl-zh-cn]: https://github.com/KaiserY/trpl-zh-cn
|
@ -2,17 +2,19 @@
|
||||
|
||||
> [ch01-01-installation.md](https://github.com/rust-lang/book/blob/master/second-edition/src/ch01-01-installation.md)
|
||||
> <br>
|
||||
> commit d1448cef370442b51e69298fb734fe29a3d14577
|
||||
> commit 7480e811ab5ad8d53a5b854d9b0c7a5a4f58499f
|
||||
|
||||
第一步是安装 Rust。我们通过 `rustup` 下载 Rust,这是一个管理 Rust 版本和相关工具的命令行工具。你需要网络连接来进行下载。
|
||||
第一步是安装 Rust。我们通过 `rustup` 下载 Rust,这是一个管理 Rust 版本和相关工具的命令行工具。下载时需要联网。
|
||||
|
||||
接下来的步骤会下载最新的稳定(stable)版 Rust 编译器。本书所有的示例和输出采用稳定版 Rust 1.21.0。Rust 的稳定性确保本书所有的例子在更新版本的 Rust 中能够继续编译。不同版本的输出可能有轻微的不同,因为 Rust 经常改进错误信息和警告。换句话说,任何通过这些步骤所安装的更新稳定版 Rust 预期能够使用本书的内容。
|
||||
> 注意:如果出于某些理由你倾向于不使用 `rustup`,请到 [Rust 安装页面](https://www.rust-lang.org/install.html) 查看其它安装选项。
|
||||
|
||||
接下来的步骤会安装最新的稳定版 Rust 编译器。本书所有示例和输出采用稳定版 Rust 1.21.0。Rust 的稳定性确保本书所有示例在最新版本的 Rust 中能够继续编译。不同版本的输出可能略有不同,因为 Rust 经常改进错误信息和警告。也就是说,通过这些步骤安装的最新稳定版 Rust,能正常运行本书中的内容。
|
||||
|
||||
> ### 命令行标记
|
||||
>
|
||||
> 本章和全书中我们展示了一些使用终端的命令。所有需要输入到终端的行都以 `$` 开头。无需输入`$`;它代表每行命令的起始。很多教程遵循 `$` 代表以常规用户身份运行命令,`#` 代表以管理员身份运行命令的惯例。不以 `$`(或 `#`)起始的行通常展示之前命令的输出。另外,PowerShell 特定的示例会采用 `>` 而不是 `$`。
|
||||
> 本章和全书中,我们会展示在终端中使用的命令。所有需要输入到终端的行都以 `$` 开头。但无需输入`$`;它代表每行命令的起点。不以 `$` 起始的行通常展示之前命令的输出。另外,PowerShell 专用的示例会采用 `>` 而不是 `$`。
|
||||
|
||||
### 在 Linux 或 macOS 上安装 Rustup
|
||||
### 在 Linux 或 macOS 上安装 `rustup`
|
||||
|
||||
如果你使用 Linux 或 macOS,打开终端并输入如下命令:
|
||||
|
||||
@ -20,15 +22,15 @@
|
||||
$ curl https://sh.rustup.rs -sSf | sh
|
||||
```
|
||||
|
||||
这个命令下载一个脚本并开始 `rustup` 工具的安装,这会安装最新稳定版 Rust。过程中可能会提示你输入密码。如果安装成功,将会出现如下内容:
|
||||
此命令下载一个脚本并开始安装 `rustup` 工具,这会安装最新稳定版 Rust。过程中可能会提示你输入密码。如果安装成功,将会出现如下内容:
|
||||
|
||||
```text
|
||||
Rust is installed now. Great!
|
||||
```
|
||||
|
||||
当然,如果你不信任采用 `curl URL | sh` 来安装软件,请随意下载、检查和运行这个脚本。
|
||||
如果你愿意,可在运行前下载并检查该脚本。
|
||||
|
||||
此安装脚本自动将 Rust 加入系统 PATH 环境变量中,在下一次登陆时生效。如果你希望立刻就开始使用 Rust 而不重启终端,在 shell 中运行如下命令手动将 Rust 加入系统 PATH 变量:
|
||||
此安装脚本自动将 Rust 加入系统 PATH 环境变量中,在下一次登录时生效。如果你希望立刻就开始使用 Rust 而不重启终端,在 shell 中运行如下命令,手动将 Rust 加入系统 PATH 变量中:
|
||||
|
||||
```text
|
||||
$ source $HOME/.cargo/env
|
||||
@ -40,25 +42,20 @@ $ source $HOME/.cargo/env
|
||||
$ export PATH="$HOME/.cargo/bin:$PATH"
|
||||
```
|
||||
|
||||
另外,你需要一个某种类型的连接器(linker)。可能他们已经安装了,不过当尝试编译 Rust 程序并得到表明连接器无法执行的错误时,你需要自行安装一个。可以安装一个 C 编译器,因为它通常带有正确的连接器。查看对应平台的文档了解如何安装 C 编译器。一些常见的 Rust 包会依赖 C 代码并因此也会需要 C 编译器,所以目前无论如何安装它都是值得的。
|
||||
另外,你需要一个某种类型的链接器(linker)。很有可能已经安装,不过当你尝试编译 Rust 程序时,却有错误指出无法执行链接器,这意味着你的系统上没有安装链接器,你需要自行安装一个。C 编译器通常带有正确的链接器。请查看你使用平台的文档,了解如何安装 C 编译器。并且,一些常用的 Rust 包依赖 C 代码,也需要安装 C 编译器。因此现在安装一个是值得的。
|
||||
|
||||
### 在 Windows 上安装 Rustup
|
||||
### 在 Windows 上安装 `rustup`
|
||||
|
||||
在 Windows 上,前往 [https://www.rust-lang.org/en-US/install.html][install] 并按照其指示安装 Rust。在安装过程的某个步骤,你会收到一个信息说明为什么你也需要 Visual Studio 2013 或之后版本的 C++ build tools。获取这些 build tools 最简单的方式是安装 [Build Tools for Visual Studio 2017][visualstudio]。这些工具位于其他工具和框架部分。
|
||||
在 Windows 上,前往 [https://www.rust-lang.org/install.html][install] 并按照说明安装 Rust。在安装过程的某个步骤,你会收到一个信息说明为什么需要安装 Visual Studio 2013 或之后版本的 C++ build tools。获取这些 build tools 最方便的方法是安装 [Build Tools for Visual Studio 2017][visualstudio]。这个工具在 “Other Tools and Frameworks” 部分。
|
||||
|
||||
[install]: https://www.rust-lang.org/en-US/install.html
|
||||
[install]: https://www.rust-lang.org/install.html
|
||||
[visualstudio]: https://www.visualstudio.com/downloads/
|
||||
|
||||
本书的余下部分使用能同时用于 *cmd.exe* 和 PowerShell 的命令。如果出现特定不同情况时,我们会说明如何使用。
|
||||
|
||||
### 不使用 Rustup 自定义安装
|
||||
|
||||
如果出于某些理由你倾向于不使用 `rustup`,请查看 [Rust 安装页面](https://www.rust-lang.org/install.html) 获取其他选项。
|
||||
|
||||
本书的余下部分,使用能同时运行于 *cmd.exe* 和 PowerShell 的命令。如果存在特定差异,我们会解释使用哪一个。
|
||||
|
||||
### 更新和卸载
|
||||
|
||||
通过 `rustup` 安装了 Rust 之后,,更新到最新版本是很简单的。在 shell 中运行如下更新脚本:
|
||||
通过 `rustup` 安装了 Rust 之后,很容易更新到最新版本。在 shell 中运行如下更新脚本:
|
||||
|
||||
```text
|
||||
$ rustup update
|
||||
@ -72,33 +69,29 @@ $ rustup self uninstall
|
||||
|
||||
### 故障排除(Troubleshooting)
|
||||
|
||||
对于检查是否正确安装了 Rust,打开 shell 并运行如下行:
|
||||
要检查是否正确安装了 Rust,打开 shell 并运行如下行:
|
||||
|
||||
```text
|
||||
$ rustc --version
|
||||
```
|
||||
|
||||
应该能看到类似这样格式的版本号、提交哈希和提交日期,对应已发布的最新稳定版:
|
||||
你应能看到已发布的最新稳定版的版本号、提交哈希和提交日期,显示为如下格式:
|
||||
|
||||
```text
|
||||
rustc x.y.z (abcabcabc yyyy-mm-dd)
|
||||
```
|
||||
|
||||
如果出现这些内容,Rust 就安装成功了!如果并没有看到这些信息并且使用 Windows,请检查 Rust 是否位于 `%PATH%` 系统变量中。如果一切正确但 Rust 仍不能使用,有许多地方可以求助。
|
||||
|
||||
恭喜入坑!(此处应该有掌声!)
|
||||
|
||||
如果在 Windows 中使用出现问题,检查 Rust(rustc,cargo 等)是否在 `%PATH%` 环境变量所包含的路径中。最简单的是 [irc.mozilla.org 上的 #rust IRC 频道][irc]<!-- ignore --> ,可以使用 [Mibbit][mibbit] 来访问它。在这里你可以与其他能够帮助你的 Rustacean(Rust 用户的称号,有自嘲意味)聊天。其它给力的资源包括[用户论坛][users]和 [Stack Overflow][stackoverflow]。
|
||||
|
||||
如果还是不能解决,有许多地方可以求助。最简单的是 [irc.mozilla.org 上的 #rust IRC 频道][irc]<!-- ignore --> ,可以使用 [Mibbit][mibbit] 来访问它。然后就能和其他 Rustacean(Rust 用户的称号,有自嘲意味)聊天并寻求帮助。其它给力的资源包括[用户论坛][users]和 [Stack Overflow][stackoverflow]。
|
||||
如果出现这些内容,Rust 就安装成功了!如果并没有看到这些信息,并且使用的是 Windows,请检查 Rust 是否位于 `%PATH%` 系统变量中。如果一切正确但 Rust 仍不能使用,有许多地方可以求助。最简单的是 [irc.mozilla.org 上的 #rust IRC 频道][irc]<!-- ignore --> ,可以使用 [Mibbit][mibbit] 来访问它。然后就能和其他 Rustacean(Rust 用户的称号,有自嘲意味)聊天并寻求帮助。其它给力的资源包括[用户论坛][users]和 [Stack Overflow][stackoverflow]。
|
||||
|
||||
[irc]: irc://irc.mozilla.org/#rust
|
||||
[mibbit]: http://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust
|
||||
[users]: https://users.rust-lang.org/
|
||||
[stackoverflow]: http://stackoverflow.com/questions/tagged/rust
|
||||
|
||||
恭喜入坑!(此处应该有掌声!)
|
||||
|
||||
### 本地文档
|
||||
|
||||
安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 `rustup doc` 在浏览器中查看本地文档。
|
||||
|
||||
任何时候,如果你拿不准标准库中的类型或函数如何工作,请查看应用程序接口(application programming interface, API)文档!
|
||||
任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查看应用程序接口(application programming interface,API)文档!
|
@ -2,17 +2,17 @@
|
||||
|
||||
> [ch01-02-hello-world.md](https://github.com/rust-lang/book/blob/master/second-edition/src/ch01-02-hello-world.md)
|
||||
> <br>
|
||||
> commit d1448cef370442b51e69298fb734fe29a3d14577
|
||||
> commit 5dfa983aa8fca89f8b70cafe58ab8417491d2018
|
||||
|
||||
既然安装好了 Rust,让我们来编写第一个 Rust 程序。当学习一门新语言的时候,使用该语言在屏幕上打印 “Hello, world!” 是一项传统,这里我们将遵循这个传统!
|
||||
既然安装好了 Rust,我们来编写第一个 Rust 程序。当学习一门新语言的时候,使用该语言在屏幕上打印 `Hello, world!` 是一项传统,这里我们将沿用这个传统!
|
||||
|
||||
> 注意:本书假设你熟悉基本的命令行操作。Rust 对于你的编辑器、工具,以及代码位于何处并没有特定的要求,如果相比命令行你更倾向于使用集成开发环境(IDE),请随意使用合意的 IDE。目前很多 IDE 拥有不同程度的 Rust 支持;查看 IDE 文档了解更多细节。目前 Rust 团队已经致力于提供强大的 IDE 支持,而且进展飞速!
|
||||
> 注意:本书假设你熟悉基本的命令行操作。Rust 对于你的编辑器、工具,以及代码位于何处并没有特定的要求,如果你更倾向于使用集成开发环境(IDE),而不是命令行,请尽管使用你喜欢的 IDE。目前很多 IDE 已经不同程度的支持 Rust;查看 IDE 文档了解更多细节。最近,Rust 团队已经致力于提供强大的 IDE 支持,而且进展飞速!
|
||||
|
||||
### 创建项目目录
|
||||
|
||||
首先以创建一个存放 Rust 代码的目录开始。Rust 并不关心代码的位置,不过对于本书的练习和项目来说,我们建议你在 home 目录中创建一个 *projects* 目录,并将你的所有项目置于此处。
|
||||
首先创建一个存放 Rust 代码的目录。Rust 并不关心代码的存放位置,不过对于本书的练习和项目来说,我们建议你在 home 目录中创建 *projects* 目录,并将你的所有项目存放在这里。
|
||||
|
||||
打开终端并输入如下命令创建一个 *projects* 目录并在 *projects* 目录中为 “Hello, world!” 创建一个目录。
|
||||
打开终端并输入如下命令创建 *projects* 目录,并在 *projects* 目录中为 Hello, world! 项目创建一个目录。
|
||||
|
||||
对于 Linux 和 macOS,输入:
|
||||
|
||||
@ -43,9 +43,9 @@ $ cd hello_world
|
||||
|
||||
### 编写并运行 Rust 程序
|
||||
|
||||
接下来,新建一个叫做 *main.rs* 的源文件。Rust 源代码总是以 *.rs* 后缀结尾。如果文件名包含多个单词,使用下划线分隔它们。例如 *my_program.rs*,而不是 *myprogram.rs*。
|
||||
接下来,新建一个源文件,命名为 *main.rs*。Rust 源文件总是以 *.rs* 扩展名结尾。如果文件名包含多个单词,使用下划线分隔它们。例如命名为 *hello_world.rs*,而不是 *helloworld.rs*。
|
||||
|
||||
现在打开刚创建的 *main.rs* 文件,输入如示例 1-1 所示的代码。
|
||||
现在打开刚创建的 *main.rs* 文件,输入示例 1-1 中的代码。
|
||||
|
||||
<span class="filename">文件名: main.rs</span>
|
||||
|
||||
@ -55,9 +55,9 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
<span class="caption">示例 1-1: 一个打印 “Hello, world!” 的程序</span>
|
||||
<span class="caption">示例 1-1: 一个打印 `Hello, world!` 的程序</span>
|
||||
|
||||
保存文件,并回到终端窗口。在 Linux 或 macOS 上,输入如下命令编译并运行文件:
|
||||
保存文件,并回到终端窗口。在 Linux 或 macOS 上,输入如下命令,编译并运行文件:
|
||||
|
||||
```text
|
||||
$ rustc main.rs
|
||||
@ -65,7 +65,7 @@ $ ./main
|
||||
Hello, world!
|
||||
```
|
||||
|
||||
在 Windows 上,输入命令 `.\main.exe` 而不是 `./main`。
|
||||
在 Windows 上,输入命令 `.\main.exe`,而不是 `./main`:
|
||||
|
||||
```powershell
|
||||
> rustc main.rs
|
||||
@ -73,13 +73,13 @@ Hello, world!
|
||||
Hello, world!
|
||||
```
|
||||
|
||||
不管使用何种系统,字符串 `Hello, world!` 应该打印到终端。如果没有看到这些输出,回到 “故障排除” 部分查找寻求帮助的方式。
|
||||
不管使用何种操作系统,终端应该打印字符串 `Hello, world!`。如果没有看到这些输出,回到 “故障排除” 部分查找寻求帮助的方法。
|
||||
|
||||
如果 `Hello, world!` 出现了,恭喜你!你已经正式编写了一个 Rust 程序。现在你成为了一名 Rust 程序员!欢迎!
|
||||
如果 `Hello, world!` 出现了,恭喜你!你已经正式编写了一个 Rust 程序。现在你成为一名 Rust 程序员,欢迎!
|
||||
|
||||
### 分析 Rust 程序
|
||||
|
||||
现在,让我们回过头来仔细看看 “Hello, world!” 程序中到底发生了什么。这是拼图的第一片:
|
||||
现在,让我们回过头来仔细看看 Hello, world! 程序中到底发生了什么。这是第一块拼图:
|
||||
|
||||
```rust
|
||||
fn main() {
|
||||
@ -87,11 +87,11 @@ fn main() {
|
||||
}
|
||||
```
|
||||
|
||||
这几行定义了一个 Rust **函数**。`main` 函数是特殊的:它是每个可执行的 Rust 程序所首先执行的代码。第一行代码声明了一个叫做 `main` 的函数,它没有参数也没有返回值。如果有参数的话,它们的名称应该出现在括号中,位于 `(` 和 `)` 之间。
|
||||
这几行定义了一个 Rust 函数。`main` 函数是一个特殊的函数:在可执行的 Rust 程序中,它总是最先运行的代码。第一行代码声明了一个叫做 `main` 的函数,它没有参数也没有返回值。如果有参数的话,它们的名称应该出现在小括号中,`()`。
|
||||
|
||||
还须注意函数体被包裹在花括号中,`{` 和 `}` 之间。Rust 要求所有函数体都要用花括号包裹起来(译者注:有些语言,当函数体只有一行时可以省略花括号,但在 Rust 中是不行的)。一般来说,将左花括号与函数声明置于同一行并以空格分隔,是良好的代码风格。
|
||||
还须注意,函数体被包裹在花括号中,`{}`。Rust 要求所有函数体都要用花括号包裹起来(译者注:有些语言,当函数体只有一行时可以省略花括号,但在 Rust 中是不行的)。一般来说,将左花括号与函数声明置于同一行并以空格分隔,是良好的代码风格。
|
||||
|
||||
在编写本书的时候,一个叫做 `rustfmt` 的自动格式化工具正在开发中。如果你希望在 Rust 项目中保持一种标准风格,`rustfmt` 会将代码格式化为特定的风格。Rust 团队计划最终将其包含在标准 Rust 发行版中,就像 `rustc`。所以根据你阅读本书的时间,它可能已经安装到你的电脑中了!检查在线文档以了解更多细节。
|
||||
在编写本书的时候,一个叫做 `rustfmt` 的自动格式化工具正在开发中。如果你希望在 Rust 项目中保持一种标准风格,`rustfmt` 会将代码格式化为特定的风格。Rust 团队计划最终将该工具包含在标准 Rust 发行版中,就像 `rustc`。所以根据你阅读本书的时间,它可能已经安装到你的电脑中了!检查在线文档以了解更多细节。
|
||||
|
||||
在 `main()` 函数中是如下代码:
|
||||
|
||||
@ -99,27 +99,27 @@ fn main() {
|
||||
println!("Hello, world!");
|
||||
```
|
||||
|
||||
这行代码完成这个简单程序的所有工作:在屏幕上打印文本。这里有四个重要的细节需要注意。首先 Rust 使用 4 个空格的缩进风格,而不是 1 个制表符(tab)。
|
||||
这行代码完成这个简单程序的所有工作:在屏幕上打印文本。这里有四个重要的细节需要注意。首先 Rust 的缩进风格使用 4 个空格,而不是 1 个制表符(tab)。
|
||||
|
||||
第二,`println!` 调用了一个 Rust **宏**(*macro*)。如果是调用函数,则应输入 `println`(没有`!`)。我们将在附录 D 中更加详细的讨论宏。现在你只需记住,当看到符号 `!` 的时候,就意味着调用的是宏而不是普通函数。
|
||||
第二,`println!` 调用了一个 Rust 宏(macro)。如果是调用函数,则应输入 `println`(没有`!`)。我们将在附录 D 中详细讨论宏。现在你只需记住,当看到符号 `!` 的时候,就意味着调用的是宏而不是普通函数。
|
||||
|
||||
第三,`"Hello, world!"` 是一个 **字符串**。我们把这个字符串作为一个参数传递给 `println!`,字符串将被打印到屏幕上。
|
||||
第三,`"Hello, world!"` 是一个字符串。我们把这个字符串作为一个参数传递给 `println!`,字符串将被打印到屏幕上。
|
||||
|
||||
第四,该行以分号结尾(`;`),这代表一个表达式的结束和下一个表达式的开始。大部分 Rust 代码行以 `;` 结尾。
|
||||
第四,该行以分号结尾(`;`),这代表一个表达式的结束和下一个表达式的开始。大部分 Rust 代码行以分号结尾。
|
||||
|
||||
### 编译和运行是彼此独立的步骤
|
||||
|
||||
你刚刚运行了一个新创建的程序,那么让我们检查过程中的每一个步骤。
|
||||
你刚刚运行了一个新创建的程序,那么让我们检查此过程中的每一个步骤。
|
||||
|
||||
在运行 Rust 程序之前,必须先通过 `rustc` 命令并传递源文件名称来使用 Rust 编译器来编译它,如下:
|
||||
在运行 Rust 程序之前,必须先使用 Rust 编辑器编译它,即输入 `rustc` 命令并传入源文件名称,如下:
|
||||
|
||||
```text
|
||||
$ rustc main.rs
|
||||
```
|
||||
|
||||
如果你有 C 或 C++ 背景,就会发现这与 `gcc` 和 `clang` 类似。编译成功后,Rust 应该会输出一个二进制可执行文件。
|
||||
如果你有 C 或 C++ 背景,就会发现这与 `gcc` 和 `clang` 类似。编译成功后,Rust 会输出一个二进制的可执行文件。
|
||||
|
||||
在 Linux、macOS 或 Windows的 PowerShell 上在 shell 中可以通过 `ls` 命令看到如下内容:
|
||||
在 Linux、macOS 或 Windows 的 PowerShell 上,在 shell 中输入 `ls` 命令就可看见这个可执行文件,如下:
|
||||
|
||||
```text
|
||||
$ ls
|
||||
@ -135,14 +135,14 @@ main.pdb
|
||||
main.rs
|
||||
```
|
||||
|
||||
这展示了 *.rs* 后缀的源文件、可执行文件(在 Windows下是 *main.exe*,其它平台是 *main*),以及当使用 CMD 时会有一个包含调试信息的 *.pdb* 后缀的文件。从这里开始运行 *main* 或 *main.exe* 文件,如下:
|
||||
这展示了扩展名为 *.rs* 的源文件、可执行文件(在 Windows 下是 *main.exe*,其它平台是 *main*),以及当使用 CMD 时会有一个包含调试信息、扩展名为 *.pdb* 的文件。从这里开始运行 *main* 或 *main.exe* 文件,如下:
|
||||
|
||||
```text
|
||||
$ ./main # or .\main.exe on Windows
|
||||
```
|
||||
|
||||
如果 *main.rs* 是上文所述的 “Hello, world!” 程序,它将会在终端上打印 `Hello, world!`。
|
||||
如果 *main.rs* 是上文所述的 Hello, world! 程序,它将会在终端上打印 `Hello, world!`。
|
||||
|
||||
来自 Ruby、Python 或 JavaScript 这样的动态类型语言背景的同学,可能不太习惯将编译和执行分为两个单独的步骤。Rust 是一种 **预编译静态类型**(*ahead-of-time compiled*)语言,这意味着你可以编译程序并将其交与他人,他们不需要安装 Rust 即可运行。如果你给他人一个 `.rb`、`.py` 或 `.js` 文件,他们需要先分别安装 Ruby,Python,JavaScript 实现(运行时环境,VM)。不过在这些语言中,只需要一句命令就可以编译和执行程序。这一切都是语言设计上的权衡取舍。
|
||||
如果你更熟悉动态语言,如 Ruby、Python 或 JavaScript,则可能不习惯将编译和运行分为两个单独的步骤。Rust 是一种 **预编译静态类型**(*ahead-of-time compiled*)语言,这意味着你可以编译程序,并将可执行文件送给其他人,他们甚至不需要安装 Rust 就可以运行。如果你给他人一个 *.rb*、*.py* 或 *.js* 文件,他们需要先分别安装 Ruby,Python,JavaScript 实现(运行时环境,VM)。不过在这些语言中,只需要一句命令就可以编译和运行程序。这一切都是语言设计上的权衡取舍。
|
||||
|
||||
仅仅使用 `rustc` 编译简单程序是没问题的,不过随着项目的增长,你可能需要控制你项目的方方面面,并且更容易地将代码分享给其它人或项目。接下来,我们要介绍一个叫做 Cargo 的工具,它会帮助你编写真实世界中的 Rust 程序。
|
||||
仅仅使用 `rustc` 编译简单程序是没问题的,不过随着项目的增长,你可能需要管理你项目的方方面面,并让代码易于分享。接下来,我们要介绍一个叫做 Cargo 的工具,它会帮助你编写真实世界中的 Rust 程序。
|
||||
|
Loading…
Reference in New Issue
Block a user