Fix mistakes in method.md

pull/117/head
lijinpeng 3 years ago
parent 9a860c6657
commit 8956365827

@ -68,7 +68,7 @@ fn main() {
`impl Rectangle {}`表示为`Rectangle`实现方法(`impl` 是实现*implementation* 的缩写),这样的写法标明`impl`语句块中的一切都是跟`Rectangle`相关联的。
接下里的内容非常重要,请大家仔细看。在 `area` 的签名中,有一个我们之前没有看到过的关键字`&self`,该关键字指代的是`&Rectangle`类型,换句话说,`self`指代的是`Rectangle`结构体,这样的写法会让我们的代码简洁很多,而且非常便于理解: 我们为哪个结构体实现方法,那么`self`就是指代的该结构体自身
接下里的内容非常重要,请大家仔细看。在 `area` 的签名中,我们使用`&self`替代`rectangle: &Rectangle``&self`其实是`self: &Self`的简写(注意大小写)。在一个`impl`块内,`Self`指代被实现方法的结构体类型,`self`指代此类型的实例,换句话说,`self`指代的是`Rectangle`结构体实例,这样的写法会让我们的代码简洁很多,而且非常便于理解: 我们为哪个结构体实现方法,那么`self`就是指代的该结构体的实例
需要注意的是,`self`依然有所有权的概念:
- `self`表示`Rectangle`的所有权转移到该方法中,这种形式用的较少
@ -129,7 +129,7 @@ fn main() {
}
```
用这种方式,我们可以把`Rectangle`的字段设置为私有属性,只需把它的`new`和`witdh`方法设置为公开可见,那么用户就可以创建一个矩形,同时通过访问器`rect1.width()`方法来获取矩形的宽度, 因为`width`字段是私有的,当用户访问`rect1.witdh`字段时,就会报错。
用这种方式,我们可以把`Rectangle`的字段设置为私有属性,只需把它的`new`和`width`方法设置为公开可见,那么用户就可以创建一个矩形,同时通过访问器`rect1.width()`方法来获取矩形的宽度, 因为`width`字段是私有的,当用户访问`rect1.width`字段时,就会报错。注意在此例中,`Self`指代的就是被实现方法的结构体`Rectangle`。
> ### `->` 运算符到哪去了?
>
@ -261,4 +261,4 @@ m.call();
}
```
除了结构体和枚举,我们还能为特征(trait)实现方法,将在下章进行讲解,在此之前,先来看看泛型。
除了结构体和枚举,我们还能为特征(trait)实现方法,将在下章进行讲解,在此之前,先来看看泛型。
Loading…
Cancel
Save