From 0e1e01e3f16c8ff27909c81bbff731f4fc2c5a11 Mon Sep 17 00:00:00 2001 From: Unisko PENG Date: Fri, 14 Apr 2023 14:59:25 +0800 Subject: [PATCH] Update Ch10 --- src/Ch10_Generic_Types_Traits_and_Lifetimes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md index f0921a7..d086e46 100644 --- a/src/Ch10_Generic_Types_Traits_and_Lifetimes.md +++ b/src/Ch10_Generic_Types_Traits_and_Lifetimes.md @@ -721,20 +721,20 @@ pub fn notify(item &(impl Summary + Display)) { pub fn notify(item: &T) { ``` -有了指定的这两个特质,那么 `notify` 的函数体,便可调用 `summarize` 函数,并可使用 `{}` 来格式化 `item` 了。 +有了指定的这两个特质,那么 `notify` 的函数体,便可调用 `summarize` 函数,及使用 `{}` 来格式化 `item` 了。 -#### 运用 `where` 子句让特质边界更清楚 +#### 使用 `where` 子句获得更清楚的特质边界 **Clearer Trait Bounds with `where` Clauses** -过多特质边界的使用,有着其负面性。每个泛型都有其自己的特质边界,因此带有多个泛型参数的函数,就会在函数名字与其参数列表之间,包含很多的特质边界信息,从而令到该函数签名难于阅读。由于这个原因,Rust 就有了在函数签名之后的一个 `where` 子句里头,指定特质边界的这样一种替代性语法。从而与其像下面这样编写函数签名: +使用过多的特质边界,有着其一些缺点。每个泛型都有自己的特质边界,那么有着多个泛型参数的函数,在其名字与其参数列表之间,就好包含很多特质边界信息,从而令到该函数签名难于阅读。出于这个原因,Rust 有着在函数签名之后的 `where` 子句里,指明特质边界的这种替代语法。从而与其写出下面这个签名: ```rust fn some_function(t: &T, u: &U) -> i32 { ``` -就可以使用 `where` 子句,写成下面这样: +咱们便可像下面这样,使用 `where` 子句: ```rust fn some_function(t: &T, u: &U) -> i32 @@ -744,7 +744,7 @@ fn some_function(t: &T, u: &U) -> i32 ``` -这样的函数签名,就不那么杂乱无章了:函数名、参数列表与返回值类型紧挨在一起,与未带有很多特质边界的某个函数类似。 +这个函数的签名,就不那么杂乱无章了:函数名、参数清单与返回值类型紧挨在一起,类似于与不带有很多特质边界的函数。 ### 实现了特质的返回值类型