|
|
|
@ -159,7 +159,7 @@ pub fn notify(item: &impl Summary) {
|
|
|
|
|
|
|
|
|
|
`impl Summary`,只能说想出这个类型的人真的是起名鬼才,简直太贴切了,故名思义,它的意思是 `实现了Summary特征` 的 `item` 参数。
|
|
|
|
|
|
|
|
|
|
你可以使用任何实现了 `Summary` 特征的类型作为该函数的参数,同时在函数体内,还可以调用该特征的的方法,例如 `summarize` 方法。具体的说,可以传递 `Post` 或 `Weibo` 的实例来作为参数,而其它类如 `String` 或者 `i32` 的类型则不能用做该函数的参数,因为它们没有实现 `Summary` 特征。
|
|
|
|
|
你可以使用任何实现了 `Summary` 特征的类型作为该函数的参数,同时在函数体内,还可以调用该特征的方法,例如 `summarize` 方法。具体的说,可以传递 `Post` 或 `Weibo` 的实例来作为参数,而其它类如 `String` 或者 `i32` 的类型则不能用做该函数的参数,因为它们没有实现 `Summary` 特征。
|
|
|
|
|
|
|
|
|
|
## 特征约束(trait bound)
|
|
|
|
|
虽然 `impl Trait` 这种语法非常好理解,但是实际上它只是一个语法糖:
|
|
|
|
|