1
Fork 0

Rollup merge of #30620 - salty-horse:an_mut, r=brson

As discussed in issue #30568.
This commit is contained in:
Steve Klabnik 2015-12-30 09:24:24 -05:00
commit a73df6bf24
3 changed files with 4 additions and 4 deletions

View file

@ -340,11 +340,11 @@ With the former, the `RefCell<T>` is wrapping the `Vec<T>`, so the `Vec<T>` in i
mutable. At the same time, there can only be one mutable borrow of the whole `Vec` at a given time.
This means that your code cannot simultaneously work on different elements of the vector from
different `Rc` handles. However, we are able to push and pop from the `Vec<T>` at will. This is
similar to an `&mut Vec<T>` with the borrow checking done at runtime.
similar to a `&mut Vec<T>` with the borrow checking done at runtime.
With the latter, the borrowing is of individual elements, but the overall vector is immutable. Thus,
we can independently borrow separate elements, but we cannot push or pop from the vector. This is
similar to an `&mut [T]`[^3], but, again, the borrow checking is at runtime.
similar to a `&mut [T]`[^3], but, again, the borrow checking is at runtime.
In concurrent programs, we have a similar situation with `Arc<Mutex<T>>`, which provides shared
mutability and ownership.

View file

@ -103,7 +103,7 @@ Then in our parameter list, we use the lifetimes weve named:
...(x: &'a i32)
```
If we wanted an `&mut` reference, wed do this:
If we wanted a `&mut` reference, wed do this:
```rust,ignore
...(x: &'a mut i32)

View file

@ -126,7 +126,7 @@ the thing `y` points at. Youll notice that `x` had to be marked `mut` as well
If it wasnt, we couldnt take a mutable borrow to an immutable value.
You'll also notice we added an asterisk (`*`) in front of `y`, making it `*y`,
this is because `y` is an `&mut` reference. You'll also need to use them for
this is because `y` is a `&mut` reference. You'll also need to use them for
accessing the contents of a reference as well.
Otherwise, `&mut` references are just like references. There _is_ a large