Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions src/doc/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -3801,7 +3801,7 @@ the value to a name with `@`:
let x = 1i;

match x {
x @ 1 ... 5 => println!("got {}", x),
e @ 1 ... 5 => println!("got a range element {}", e),
_ => println!("anything"),
}
```
Expand Down Expand Up @@ -3834,7 +3834,7 @@ enum OptionalInt {
let x = Value(5i);

match x {
Value(x) if x > 5 => println!("Got an int bigger than five!"),
Value(i) if i > 5 => println!("Got an int bigger than five!"),
Value(..) => println!("Got an int!"),
Missing => println!("No such luck."),
}
Expand All @@ -3847,12 +3847,12 @@ with. First, `&`:
let x = &5i;

match x {
&x => println!("Got a value: {}", x),
&val => println!("Got a value: {}", val),
}
```

Here, the `x` inside the `match` has type `int`. In other words, the left hand
side of the pattern destructures the value. If we have `&5i`, then in `&x`, `x`
Here, the `val` inside the `match` has type `int`. In other words, the left hand
side of the pattern destructures the value. If we have `&5i`, then in `&val`, `val`
would be `5i`.

If you want to get a reference, use the `ref` keyword:
Expand All @@ -3861,19 +3861,19 @@ If you want to get a reference, use the `ref` keyword:
let x = 5i;

match x {
ref x => println!("Got a reference to {}", x),
ref r => println!("Got a reference to {}", r),
}
```

Here, the `x` inside the `match` has the type `&int`. In other words, the `ref`
Here, the `r` inside the `match` has the type `&int`. In other words, the `ref`
keyword _creates_ a reference, for use in the pattern. If you need a mutable
reference, `ref mut` will work in the same way:

```{rust}
let mut x = 5i;

match x {
ref mut x => println!("Got a mutable reference to {}", x),
ref mut mr => println!("Got a mutable reference to {}", mr),
}
```

Expand Down