Fix typo in trait.md

pull/117/head
lijinpeng 3 years ago
parent dcb816e7d6
commit 40f4c67bff

@ -123,7 +123,7 @@ impl Summary for Weibo {
sunface发表了微博好像微博没Tweet好用
```
默认实现允许调用相同特中的其他方法,哪怕这些方法没有默认实现。如此,特征可以提供很多有用的功能而只需要实现指定的一小部分内容。例如,我们可以定义`Summary`特征,使其具有一个需要实现的`summarize_author`方法,然后定义一个`summarize`方法,此方法的默认实现调用`summarize_author`方法:
默认实现允许调用相同特中的其他方法,哪怕这些方法没有默认实现。如此,特征可以提供很多有用的功能而只需要实现指定的一小部分内容。例如,我们可以定义`Summary`特征,使其具有一个需要实现的`summarize_author`方法,然后定义一个`summarize`方法,此方法的默认实现调用`summarize_author`方法:
```rust
pub trait Summary {
fn summarize_author(&self) -> String;
@ -157,7 +157,7 @@ pub fn notify(item: &impl Summary) {
}
```
`impl Summary`,只能说出这个类型的人真的是起名鬼才,简直太贴切了,故名思义`实现了Summary特征`的`item参数.
`impl Summary`,只能说出这个类型的人真的是起名鬼才,简直太贴切了,故名思义`实现了Summary特征`的`item`参数.
你可以使用任何实现了`Summary`特征的类型作为该函数的参数,同时在函数体内,还可以调用该特征的的方法,例如`summarize`方法。具体的说,可以传递`Post`或`Weibo`的实例来作为参数,而其它类如`String`或者`i32`的类型则不能用做该函数的参数,因为它们没有实现`Summary`特征。
@ -237,8 +237,8 @@ impl<T: Display + PartialOrd> Pair<T> {
}
```
`cmd_display`方法,并不是所有的`Pair<T>`结构体对象都拥有,只有`T`实现了`Display + PartialOrd`的`Part<T>`才拥有此方法
该函数可读性会更好,因为泛型参数、参数、返回值都在一起,可以快速的阅读,同时每个泛型参数的特征也在新的代码行中通过`where`进行了约束。
`cmd_display`方法,并不是所有的`Pair<T>`结构体对象都拥有,只有`T`实现了`Display + PartialOrd`的`Part<T>`才拥有此方法
该函数可读性会更好,因为泛型参数、参数、返回值都在一起,可以快速的阅读,同时每个泛型参数的特征也在新的代码行中通过**特征约束**进行了约束。
**也可以有条件的实现特征**, 例如,标准库为任何实现了 `Display`特征的类型实现了 `ToString`特征:
```rust
@ -390,7 +390,7 @@ fn main() {
例如`Copy`特征,它也有一套自动实现的默认代码,当标记到一个类型上时,可以让这个类型自动实现`Copy`特征,进而可以调用`copy`方法,进行自我复制。
`derive`派生出来的是Rust默认给我们提供的特征在开发过程中极大的简化了自己手动实现相应特征的需求当然如果你有特殊的需求还可以自己手动重载该实现。
`derive`派生出来的是Rust默认给我们提供的特征在开发过程中极大的简化了自己手动实现相应特征的需求当然如果你有特殊的需求还可以自己手动重载该实现。
详细的`derive`列表参加[附录-派生特征](../../appendix/derive.md).

Loading…
Cancel
Save