Rollup merge of #30620 - salty-horse:an_mut, r=brson
As discussed in issue #30568.
This commit is contained in:
commit
a73df6bf24
3 changed files with 4 additions and 4 deletions
|
@ -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.
|
||||
|
|
|
@ -103,7 +103,7 @@ Then in our parameter list, we use the lifetimes we’ve named:
|
|||
...(x: &'a i32)
|
||||
```
|
||||
|
||||
If we wanted an `&mut` reference, we’d do this:
|
||||
If we wanted a `&mut` reference, we’d do this:
|
||||
|
||||
```rust,ignore
|
||||
...(x: &'a mut i32)
|
||||
|
|
|
@ -126,7 +126,7 @@ the thing `y` points at. You’ll notice that `x` had to be marked `mut` as well
|
|||
If it wasn’t, we couldn’t 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue