Skip to content

Commit

Permalink
typos
Browse files Browse the repository at this point in the history
  • Loading branch information
zjp-CN committed Dec 17, 2023
1 parent 4d8a2be commit 530d4f5
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/variance/covariance-borrow-forever.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,10 @@ fn works(mut person: Person<'_>) {

具体来说,如果 `Ty<'a>``'a` 不再是协变,而是不变 (invariant),那么对于 `'a: 'b`
* `&'a Ty<'a>` 依然可以缩短成 `&'b Ty<'a>` (但仅限在 `'a` 存活期间,见 [永久借用中的协变]
* 只是 `Ty<'a>` 无法缩短成 `Ty<'b>`,从而 `&'a Ty<'a>``&'b Ty<'a>` 无法缩短成 `&'b Ty<'b>`
* `Ty<'a>` 无法缩短成 `Ty<'b>`,从而 `&'a Ty<'a>``&'b Ty<'a>` 无法缩短成 `&'b Ty<'b>`

实际上,`&'a Ty<'a>``&'a mut Ty<'a>` 其实几乎一模一样
([playground for `&'a mut Ty<'a'>`](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3b2db91b62a3cadd03c4b4d390b5bf03))
([playground for `&'a mut Ty<'a>`](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3b2db91b62a3cadd03c4b4d390b5bf03))
,唯一的区别在于一个是永久共享借用,另一个是永久独占借用。

```rust,editable
Expand Down Expand Up @@ -118,7 +118,7 @@ impl<'a> Invariant<'a> {
都可以因为协变相应地缩短成 `&'b``&'b mut`

生命周期是协变的(即生命周期可以缩短),而引用通常可以再借
(reborrow),这导致一个长的生命周期可以在它存活的状态中被“分割”彼此成互不相交的子生命周期。
(reborrow),这表明:一个长的生命周期,可以在它存活的状态中,被“分割”彼此成互不相交的子生命周期。

这也适用于永久借用。以下两个代码展示了如何在永久借用的存活期间再借(重点在 `borrow` 内部)。

Expand Down

0 comments on commit 530d4f5

Please sign in to comment.