modified: src/ch01-02-hello-world.md

modified:   src/ch02-00-guessing-game-tutorial.md
This commit is contained in:
murphy 2017-05-16 20:13:38 +08:00
parent b5c98492f1
commit c510bd8bcc
2 changed files with 12 additions and 12 deletions

View File

@ -238,7 +238,7 @@ $ cargo run
Hello, world! Hello, world!
``` ```
注意这一次,并没有出现告诉我们 Cargo 正在编译 `hello_cargo` 的输出。Cargo 发现文件并没有被改变,直接运行了二进制文件。如果修改了源文件的话,将会出现像这样的输出: 注意这一次并没有出现“正在编译 `hello_cargo`的输出。Cargo 发现文件并没有被改变,直接运行了二进制文件。如果修改了源文件的话,将会出现像这样的输出:
``` ```
$ cargo run $ cargo run
@ -256,11 +256,11 @@ Cargo 的另一个优点是,不管你使用什么操作系统,它的命令
### 发布构建 ### 发布构建
当项目最终准备好发布了,可以使用`cargo build --release`来优化编译项目。这会在 *target/release* 下生成可执行文件,而不是 *target/debug*。这些优化可以让 Rust 代码运行的更快,不过启用他们会让程序花更长的时间编译。这也是为何这是两种不同的配置:一个为了开发,这时你经常想要快速重新构建;另一个构建提供给用户的最终程序,这时并不会重新构建并希望程序能运行得越快越好。如果你在测试代码的运行时间,请确保运行`cargo build --release`并使用 *target/release* 下的可执行文件进行测试 当项目最终准备好发布了,可以使用 `cargo build --release` 来优化编译项目。这会在 *target/release* 下生成可执行文件,而不是 *target/debug*。优化可以让 Rust 代码运行的更快,然而也需要更长的编译时间。因此产生了两种不同的配置:一种为了开发,你需要快速重新构建;另一种构建给用户的最终程序,不会重新构建,并且程序能运行得越快越好。如果你在测试代码的运行时间,请确保运行 `cargo build --release` 并使用 *target/release* 下的可执行文件。
### 把 Cargo 当作习惯 ### 把 Cargo 当作习惯
对于简单项目, Cargo 并不能比`rustc`提供更多的价值,不过随着开发的进行终将体现它的价值。对于拥有多个 crate 的复杂项目,让 Cargo 来协调构建将更简单。有了 Cargo只需运行`cargo build`,然后一切将有序运行。即便这个项目很简单,也它使用了很多你之后的 Rust 生涯将会用得上的实用工具。其实你可以开始任何你想要从事的项目,使用下面的命令: 对于简单项目, Cargo 并不`rustc` 更有价值,不过随着开发的进行终将体现它的价值。对于拥有多个 crate 的复杂项目,让 Cargo 来协调构建将更简单。有了 Cargo只需运行`cargo build`,然后一切将有序运行。即便这个项目很简单,也它使用了很多你之后的 Rust 生涯将会用得上的实用工具。其实你可以开始任何你想要从事的项目,使用下面的命令:
``` ```
$ git clone someurl.com/someproject $ git clone someurl.com/someproject

View File

@ -4,13 +4,13 @@
> <br> > <br>
> commit e6d6caab41471f7115a621029bd428a812c5260e > commit e6d6caab41471f7115a621029bd428a812c5260e
让我们通过自己动手的方式一起完成一个项目来快速上手 Rust本章将介绍一些常用的 Rust 概念,并通过真实的程序来展示如何运用他们。你将会学到`let`、`match`、方法、关联函数、使用外部 crate 等更多的知识!接下来的章节会探索这些概念的细节。在这一章,我们将练习基础。 让我们亲自动手,快速熟悉 Rust本章将介绍 Rust 中常用的一些概念,并通过真实的程序来展示如何运用。你将会学到更多诸如 `let`、`match`、方法、关联函数、外部 crate 等知识!后继章节会深入探索这些概念的细节。在这一章,我们将练习基础。
我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的随机整数。接着它会提示玩家输入一个猜测。当输入了一个猜测后,它会提示猜测是太大了还是太小了。如果猜对了,它会打印出祝贺并退出 我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的随机整数。接着它会请玩家猜一个数并输入,然后提示猜测是大了还是小了。如果猜对了,它会在退出前祝贺你
## 准备一个新项目 ## 准备一个新项目
要创建一个新项目,进入第一章创建的**项目**目录,像这样使用 Cargo 创建它: 要创建一个新项目,进入第一章创建的**项目**目录,使用 Cargo 创建它:
``` ```
$ cargo new guessing_game --bin $ cargo new guessing_game --bin
@ -60,7 +60,7 @@ Hello, world!
## 处理一次猜测 ## 处理一次猜测
程序的第一部分会请求用户输入,处理输入,并检查输入是否为期望的形式。首先,允许玩家输入一个猜测。在 *src/main.rs* 中输入列表 2-1 中的代码。 程序的第一部分会请求用户输入,处理输入,并检查输入是否符合预期。首先,允许玩家输入一个猜测。在 *src/main.rs* 中输入列表 2-1 中的代码。
<span class="filename">Filename: src/main.rs</span> <span class="filename">Filename: src/main.rs</span>
@ -83,17 +83,17 @@ fn main() {
<span class="caption">Listing 2-1: Code to get a guess from the user and print it out</span> <span class="caption">Listing 2-1: Code to get a guess from the user and print it out</span>
这些代码包含很多信息,所以让我们一点一点地过一遍。为了获取用户输入并接着打印结果作为输出,我们需要将`io`(输入/输出)库引入作用域中。`io`库来自于标准库(也被称为`std` 这些代码包含很多信息,我们一点一点地过一遍。为了获取用户输入并打印结果作为输出,我们需要将`io`(输入/输出)库引入作用域中。`io`库来自于标准库(也被称为`std`
```rust,ignore ```rust,ignore
use std::io; use std::io;
``` ```
Rust 默认只在每个程序的 [*prelude*][prelude]<!-- ignore --> 中引用很少的一些类型。如果想要使用的类型并不在 prelude 中,你必须使用一个`use`语句显式的将其引入到作用域中。使用`std::io`库提供很多`io`相关的功能,接受用户输入的功能 Rust 默认只在每个程序的 [*prelude*][prelude]<!-- ignore --> 中引用很少的一些类型。如果想要使用的类型并不在 prelude 中,你必须使用一个`use`语句显式的将其引入到作用域中。`std::io`库提供很多`io`相关的功能,比如接受用户输入。
[prelude]: https://doc.rust-lang.org/std/prelude/index.html [prelude]: https://doc.rust-lang.org/std/prelude/index.html
正如第一章所讲`main`函数是程序的入口点: 如第一章所提及`main`函数是程序的入口点:
```rust,ignore ```rust,ignore
fn main() { fn main() {
@ -101,7 +101,7 @@ fn main() {
`fn`语法声明了一个新函数,`()`表明没有参数,`{`作为函数体的开始。 `fn`语法声明了一个新函数,`()`表明没有参数,`{`作为函数体的开始。
第一章也讲到了`println!`是一个在屏幕上打印字符串的宏: 第一章也提及`println!`是一个在屏幕上打印字符串的宏:
```rust,ignore ```rust,ignore
println!("Guess the number!"); println!("Guess the number!");
@ -109,7 +109,7 @@ println!("Guess the number!");
println!("Please input your guess."); println!("Please input your guess.");
``` ```
这些代码仅仅打印一个提示,说明游戏的内容并请求用户输入。 这些代码仅仅打印提示,介绍游戏的内容然后请用户输入。
### 用变量储存值 ### 用变量储存值