Update ch15-02-deref.md

解引用的结果是一个值,而非一个引用,而”追踪一个引用所指向的值“更像是在描述一个引用,而非一个值。"解出"引用的值,比”追踪“引用的值更能清晰地表述解引用的结果是一个值的概念。
This commit is contained in:
Daniel 2021-07-17 22:21:49 +08:00 committed by GitHub
parent 63f4101d4d
commit b582ca5e88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -8,7 +8,7 @@
### 通过解引用运算符追踪指针的值
常规引用是一个指针类型,一种理解指针的方式是将其看成指向储存在其他某处值的箭头。在示例 15-6 中,创建了一个 `i32` 值的引用,接着使用解引用运算符来跟踪所引用的数据
常规引用是一个指针类型,一种理解指针的方式是将其看成指向储存在其他某处值的箭头。在示例 15-6 中,创建了一个 `i32` 值的引用y接着使用解引用运算符来解出y所引用的值
<span class="filename">文件名: src/main.rs</span>
@ -22,9 +22,9 @@ fn main() {
}
```
<span class="caption">示例 15-6使用解引用运算符来跟踪 `i32` 值的引用</span>
<span class="caption">示例 15-6使用解引用运算符来解出 `i32` 值的引用所指向的值</span>
变量 `x` 存放了一个 `i32``5`。`y` 等于 `x` 的一个引用。可以断言 `x` 等于 `5`。然而,如果希望对 `y` 的值做出断言,必须使用 `*y`追踪引用所指向的值(也就是 **解引用**)。一旦解引用了 `y`,就可以访问 `y` 所指向的整型值并可以与 `5` 做比较。
变量 `x` 存放了一个 `i32``5`。`y` 等于 `x` 的一个引用。可以断言 `x` 等于 `5`。然而,如果希望对 `y` 的值做出断言,必须使用 `*y`解出引用所指向的值(也就是 **解引用**)。一旦解引用了 `y`,就可以访问 `y` 所指向的整型值并可以与 `5` 做比较。
相反如果尝试编写 `assert_eq!(5, y);`,则会得到如下编译错误:
@ -39,7 +39,7 @@ error[E0277]: can't compare `{integer}` with `&{integer}`
`{integer}`
```
不允许比较数字的引用与数字,因为它们是不同的类型。必须使用解引用运算符追踪引用所指向的值。
不允许比较数字的引用与数字,因为它们是不同的类型。必须使用解引用运算符解出引用所指向的值。
### 像引用一样使用 `Box<T>`