mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-22 10:05:06 +03:00
Rollup merge of #30620 - salty-horse:an_mut, r=brson
As discussed in issue #30568.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user