width 与 height 翻译不准确
pull/191/head
lizhaoming 7 years ago
parent f016357226
commit eec947363e

@ -67,7 +67,7 @@ fn area(dimensions: (u32, u32)) -> u32 {
在某种程度上说这个程序更好一点了。元组帮助我们增加了一些结构性,现在在调用 `area` 的时候只需传递一个参数。不过在另一方面这个方法却更不明确了:元组并没有给出它元素的名称,所以计算变得更费解了,因为不得不使用索引来获取元组的每一部分: 在某种程度上说这个程序更好一点了。元组帮助我们增加了一些结构性,现在在调用 `area` 的时候只需传递一个参数。不过在另一方面这个方法却更不明确了:元组并没有给出它元素的名称,所以计算变得更费解了,因为不得不使用索引来获取元组的每一部分:
在面积计算时混淆宽高并没有什么问题,不过当在屏幕上绘制长方形时就有问题了!我们将不得不记住元组索引 `0``length` 而 `1``width`。如果其他人要使用这些代码,他们也不得不搞清楚并记住他们。容易忘记或者混淆这些值而造成错误,因为我们没有表明代码中数据的意义。 在面积计算时混淆宽高并没有什么问题,不过当在屏幕上绘制长方形时就有问题了!我们将不得不记住元组索引 `0``width` 而 `1``height`。如果其他人要使用这些代码,他们也不得不搞清楚并记住他们。容易忘记或者混淆这些值而造成错误,因为我们没有表明代码中数据的意义。
### 使用结构体重构:赋予更多意义 ### 使用结构体重构:赋予更多意义
@ -97,11 +97,11 @@ fn area(rectangle: &Rectangle) -> u32 {
<span class="caption">示例 5-10定义 `Rectangle` 结构体</span> <span class="caption">示例 5-10定义 `Rectangle` 结构体</span>
这里我们定义了一个结构体并称其为 `Rectangle`。在 `{}` 中定义了字段 `length` 和 `width`,都是 `u32` 类型的。接着在 `main` 中,我们创建了一个宽度为 30 和高度为 50 的 `Rectangle` 的具体实例。 这里我们定义了一个结构体并称其为 `Rectangle`。在 `{}` 中定义了字段 `width` 和 `height`,都是 `u32` 类型的。接着在 `main` 中,我们创建了一个宽度为 30 和高度为 50 的 `Rectangle` 的具体实例。
函数 `area` 现在被定义为接收一个名叫 `rectangle` 的参数,其类型是一个结构体 `Rectangle` 实例的不可变借用。第四章讲到过,我们希望借用结构体而不是获取它的所有权这样 `main` 函数就可以保持 `rect1` 的所有权并继续使用它,所以这就是为什么在函数签名和调用的地方会有 `&` 函数 `area` 现在被定义为接收一个名叫 `rectangle` 的参数,其类型是一个结构体 `Rectangle` 实例的不可变借用。第四章讲到过,我们希望借用结构体而不是获取它的所有权这样 `main` 函数就可以保持 `rect1` 的所有权并继续使用它,所以这就是为什么在函数签名和调用的地方会有 `&`
`area` 函数访问 `Rectangle``length` 和 `width` 字段。`area` 的签名现在明确的表明了我们的意图:通过其 `length``width` 字段,计算一个 `Rectangle` 的面积。这表明了宽高是相互联系的,并为这些值提供了描述性的名称而不是使用元组的索引值 `0``1` 。结构体胜在更清晰明了。 `area` 函数访问 `Rectangle``width` 和 `height` 字段。`area` 的签名现在明确的表明了我们的意图:通过其 `width``height` 字段,计算一个 `Rectangle` 的面积。这表明了宽高是相互联系的,并为这些值提供了描述性的名称而不是使用元组的索引值 `0``1` 。结构体胜在更清晰明了。
### 通过派生 trait 增加实用功能 ### 通过派生 trait 增加实用功能

Loading…
Cancel
Save