auto merge of #16471 : EduardoBautista/rust/chapter-14-fixes, r=steveklabnik
Just some small fixes for the guide. The cargo stuff is probably because of an update.
This commit is contained in:
commit
20b3313c8c
1 changed files with 40 additions and 40 deletions
|
@ -342,7 +342,7 @@ Once you have this file in place, we should be ready to build! Try this:
|
|||
|
||||
```{bash}
|
||||
$ cargo build
|
||||
Compiling hello_world v0.1.0 (file:/home/yourname/projects/hello_world)
|
||||
Compiling hello_world v0.0.1 (file:///home/yourname/projects/hello_world)
|
||||
$ ./target/hello_world
|
||||
Hello, world!
|
||||
```
|
||||
|
@ -486,7 +486,7 @@ You can use `cargo build` on the command line to build it. You'll get a warning,
|
|||
but it will still print "Hello, world!":
|
||||
|
||||
```{ignore,notrust}
|
||||
Compiling hello_world v0.1.0 (file:/home/you/projects/hello_world)
|
||||
Compiling hello_world v0.0.1 (file:///home/you/projects/hello_world)
|
||||
src/hello_world.rs:2:9: 2:10 warning: unused variable: `x`, #[warn(unused_variable)] on by default
|
||||
src/hello_world.rs:2 let x: int;
|
||||
^
|
||||
|
@ -508,7 +508,7 @@ And try to build it. You'll get an error:
|
|||
|
||||
```{bash}
|
||||
$ cargo build
|
||||
Compiling hello_world v0.1.0 (file:/home/you/projects/hello_world)
|
||||
Compiling hello_world v0.0.1 (file:///home/you/projects/hello_world)
|
||||
src/hello_world.rs:4:39: 4:40 error: use of possibly uninitialized variable: `x`
|
||||
src/hello_world.rs:4 println!("The value of x is: {}", x);
|
||||
^
|
||||
|
@ -1782,7 +1782,7 @@ Check out the generated `Cargo.toml`:
|
|||
[package]
|
||||
|
||||
name = "guessing_game"
|
||||
version = "0.1.0"
|
||||
version = "0.0.1"
|
||||
authors = ["Your Name <you@example.com>"]
|
||||
```
|
||||
|
||||
|
@ -1793,7 +1793,7 @@ Finally, Cargo generated a hello, world for us. Check out `src/main.rs`:
|
|||
|
||||
```{rust}
|
||||
fn main() {
|
||||
println!("Hello world!");
|
||||
println!("Hello, world!");
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -1801,7 +1801,7 @@ Let's try compiling what Cargo gave us:
|
|||
|
||||
```{bash}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$
|
||||
```
|
||||
|
||||
|
@ -1914,7 +1914,7 @@ Let's try to compile this using `cargo build`:
|
|||
|
||||
```{notrust,no_run}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
src/main.rs:7:26: 7:34 error: the type of this value must be known in this context
|
||||
src/main.rs:7 let secret_number = (rand::random() % 100i) + 1i;
|
||||
^~~~~~~~
|
||||
|
@ -1962,7 +1962,7 @@ fn main() {
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$
|
||||
```
|
||||
|
||||
|
@ -2021,8 +2021,8 @@ And trying it out:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Guess the number!
|
||||
The secret number is: 57
|
||||
Please input your guess.
|
||||
|
@ -2076,7 +2076,7 @@ If we try to compile, we'll get some errors:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
src/main.rs:20:15: 20:20 error: mismatched types: expected `int` but found `collections::string::String` (expected int but found struct collections::string::String)
|
||||
src/main.rs:20 match cmp(input, secret_number) {
|
||||
^~~~~
|
||||
|
@ -2130,7 +2130,7 @@ And try compiling again:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
src/main.rs:20:15: 20:20 error: mismatched types: expected `uint` but found `collections::string::String` (expected uint but found struct collections::string::String)
|
||||
src/main.rs:20 match cmp(input, secret_number) {
|
||||
^~~~~
|
||||
|
@ -2161,7 +2161,7 @@ a function for that:
|
|||
let input = io::stdin().read_line()
|
||||
.ok()
|
||||
.expect("Failed to read line");
|
||||
let guess: Option<uint> = from_str(input.as_slice());
|
||||
let input_num: Option<uint> = from_str(input.as_slice());
|
||||
```
|
||||
|
||||
The `from_str` function takes in a `&str` value and converts it into something.
|
||||
|
@ -2183,8 +2183,8 @@ In this case, we say `x` is a `uint` explicitly, so Rust is able to properly
|
|||
tell `random()` what to generate. In a similar fashion, both of these work:
|
||||
|
||||
```{rust,ignore}
|
||||
let guess = from_str::<Option<uint>>("5");
|
||||
let guess: Option<uint> = from_str("5");
|
||||
let input_num = from_str::<Option<uint>>("5");
|
||||
let input_num: Option<uint> = from_str("5");
|
||||
```
|
||||
|
||||
In this case, I happen to prefer the latter, and in the `random()` case, I prefer
|
||||
|
@ -2233,7 +2233,7 @@ Let's try it out!
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
src/main.rs:22:15: 22:24 error: mismatched types: expected `uint` but found `core::option::Option<uint>` (expected uint but found enum core::option::Option)
|
||||
src/main.rs:22 match cmp(input_num, secret_number) {
|
||||
^~~~~~~~~
|
||||
|
@ -2292,8 +2292,8 @@ print an error message and return. Let's give this a shot:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Guess the number!
|
||||
The secret number is: 17
|
||||
Please input your guess.
|
||||
|
@ -2358,8 +2358,8 @@ Let's try it!
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Guess the number!
|
||||
The secret number is: 58
|
||||
Please input your guess.
|
||||
|
@ -2436,8 +2436,8 @@ that `return`? If we give a non-number answer, we'll `return` and quit. Observe:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Guess the number!
|
||||
The secret number is: 59
|
||||
Please input your guess.
|
||||
|
@ -2569,8 +2569,8 @@ Now we should be good! Let's try:
|
|||
|
||||
```{rust,ignore}
|
||||
$ cargo build
|
||||
Compiling guessing_game v0.1.0 (file:/home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Compiling guessing_game v0.0.1 (file:///home/you/projects/guessing_game)
|
||||
$ ./target/guessing_game
|
||||
Guess the number!
|
||||
The secret number is: 61
|
||||
Please input your guess.
|
||||
|
@ -2684,7 +2684,7 @@ Let's double check our work by compiling:
|
|||
|
||||
```{bash,ignore}
|
||||
$ cargo build
|
||||
Compiling modules v0.1.0 (file:/home/you/projects/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
$ ./target/modules
|
||||
Hello, world!
|
||||
```
|
||||
|
@ -2745,7 +2745,7 @@ mod hello {
|
|||
It gives an error:
|
||||
|
||||
```{notrust,ignore}
|
||||
Compiling modules v0.1.0 (file:/home/you/projects/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
src/main.rs:2:5: 2:23 error: function `print_hello` is private
|
||||
src/main.rs:2 hello::print_hello();
|
||||
^~~~~~~~~~~~~~~~~~
|
||||
|
@ -2769,7 +2769,7 @@ This will work:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo run
|
||||
Compiling modules v0.1.0 (file:/home/steve/tmp/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
Running `target/modules`
|
||||
Hello, world!
|
||||
$
|
||||
|
@ -2819,7 +2819,7 @@ This doesn't _quite_ work yet. Try it:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling modules v0.1.0 (file:/home/you/projects/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
/home/you/projects/modules/src/lib.rs:2:5: 4:6 warning: code is never used: `print_hello`, #[warn(dead_code)] on by default
|
||||
/home/you/projects/modules/src/lib.rs:2 pub fn print_hello() {
|
||||
/home/you/projects/modules/src/lib.rs:3 println!("Hello, world!");
|
||||
|
@ -2855,7 +2855,7 @@ And everything should work:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo run
|
||||
Compiling modules v0.1.0 (file:/home/you/projects/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
Running `target/modules`
|
||||
Hello, world!
|
||||
```
|
||||
|
@ -2921,7 +2921,7 @@ This should all compile as usual:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo build
|
||||
Compiling modules v0.1.0 (file:/home/you/projects/modules)
|
||||
Compiling modules v0.0.1 (file:///home/you/projects/modules)
|
||||
$
|
||||
```
|
||||
|
||||
|
@ -3093,7 +3093,7 @@ And try it out:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo run
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
Running `target/testing`
|
||||
Hello, world!
|
||||
$
|
||||
|
@ -3126,7 +3126,7 @@ it `false`, so this test should fail. Let's try it!
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
/home/you/projects/testing/src/main.rs:1:1: 3:2 warning: code is never used: `main`, #[warn(dead_code)] on by default
|
||||
/home/you/projects/testing/src/main.rs:1 fn main() {
|
||||
/home/you/projects/testing/src/main.rs:2 println!("Hello, world");
|
||||
|
@ -3159,7 +3159,7 @@ Lots of output! Let's break this down:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
```
|
||||
|
||||
You can run all of your tests with `cargo test`. This runs both your tests in
|
||||
|
@ -3234,7 +3234,7 @@ And then try to run our tests again:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
/home/you/projects/testing/src/main.rs:1:1: 3:2 warning: code is never used: `main`, #[warn(dead_code)] on by default
|
||||
/home/you/projects/testing/src/main.rs:1 fn main() {
|
||||
/home/you/projects/testing/src/main.rs:2 println!("Hello, world");
|
||||
|
@ -3273,7 +3273,7 @@ With this attribute, we won't get the warning:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
|
||||
running 0 tests
|
||||
|
||||
|
@ -3302,7 +3302,7 @@ And try to run the test:
|
|||
|
||||
```{notrust,ignore}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/youg/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/youg/projects/testing)
|
||||
/home/youg/projects/testing/tests/lib.rs:3:18: 3:38 error: unresolved name `add_three_times_four`.
|
||||
/home/youg/projects/testing/tests/lib.rs:3 let result = add_three_times_four(5i);
|
||||
^~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -3361,7 +3361,7 @@ Let's give it a run:
|
|||
|
||||
```{ignore,notrust}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
|
||||
running 0 tests
|
||||
|
||||
|
@ -3401,7 +3401,7 @@ If you run `cargo test`, you should get the same output:
|
|||
|
||||
```{ignore,notrust}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
|
||||
running 0 tests
|
||||
|
||||
|
@ -3445,7 +3445,7 @@ fn test_add_three() {
|
|||
We'd get this error:
|
||||
|
||||
```{notrust,ignore}
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
/home/you/projects/testing/tests/lib.rs:3:5: 3:24 error: function `add_three` is private
|
||||
/home/you/projects/testing/tests/lib.rs:3 use testing::add_three;
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
|
@ -3488,7 +3488,7 @@ Let's give it a shot:
|
|||
|
||||
```{ignore,notrust}
|
||||
$ cargo test
|
||||
Compiling testing v0.1.0 (file:/home/you/projects/testing)
|
||||
Compiling testing v0.0.1 (file:///home/you/projects/testing)
|
||||
|
||||
running 1 test
|
||||
test test::test_times_four ... ok
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue