From d376c36099911b1a2caf9b6f4c7c8410730a83ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 31 May 2023 13:59:24 +0800 Subject: [PATCH 1/4] Update chapter_3_10_1.md --- src/chapter_3/chapter_3_10_1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/chapter_3/chapter_3_10_1.md b/src/chapter_3/chapter_3_10_1.md index a31d3f8..672486f 100644 --- a/src/chapter_3/chapter_3_10_1.md +++ b/src/chapter_3/chapter_3_10_1.md @@ -382,11 +382,11 @@ pub fn produce_item_with_name(is_teacher: bool) -> T { } ``` -返回的值相当于是一个泛型,这个泛型要求要实现`GetName`这个trait。回顾泛型的知识,Rust实际上是在编译的时候把泛型换成了具体的类型,所以上面的定义中,T在编译时会变成确定的某个类型。所以在编译时,上面的代码可能被翻译成如下两种情况: +返回的值相当于是一个泛型,这个泛型要求要实现`GetName`这个trait。回顾泛型的知识,Rust实际上是在编译的时候把泛型换成了具体的类型,所以上面的定义中,T在编译时会变成确定的某个类型(按照上下文,即Student类型或Teacher类型)。所以在编译时,上面的代码可能被翻译成如下两种情况: ```rust // 编译时代码将被翻译成如下: -pub fn produce_item_with_name(is_teacher: bool) -> Student { +pub fn produce_item_with_name(is_teacher: bool) -> Teacher { let result = if is_teacher { Teacher { name: "alice".to_string() } } else { @@ -410,7 +410,7 @@ pub fn produce_item_with_name(is_teacher: bool) -> Student { 无论是哪种情况,都是错误的。 -那如果需要返回多种实现了trait的类型,则需要使用后续讲解的内容trait对象(3.9.2节)来满足需求。 +那如果需要返回多种实现了trait的类型,则需要使用后续讲解的内容trait对象(3.10.2节)来满足需求。 ## 5. 使用`trait bound`有条件的实现方法 From 756be45f793b17d6febcbfecae13cd87c5fe9d1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 31 May 2023 14:00:11 +0800 Subject: [PATCH 2/4] Update chapter_3_3.md --- src/chapter_3/chapter_3_3.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chapter_3/chapter_3_3.md b/src/chapter_3/chapter_3_3.md index e7df1e5..90c1368 100644 --- a/src/chapter_3/chapter_3_3.md +++ b/src/chapter_3/chapter_3_3.md @@ -55,7 +55,7 @@ fn main() { ## 3.3.2. 语句和表达式 -Rust中,语句是执行一个写操作但不返回值的指令,表达式则计算并产生一个值。 +Rust中,语句是执行一个操作但不返回值的指令,表达式则计算并产生一个值。 ```rust fn main() { From 27c6c704e08007cca4905b871caf99126408d858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 31 May 2023 14:00:42 +0800 Subject: [PATCH 3/4] Update chapter_3_2.md --- src/chapter_3/chapter_3_2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/chapter_3/chapter_3_2.md b/src/chapter_3/chapter_3_2.md index aecbc0d..ce87eb6 100644 --- a/src/chapter_3/chapter_3_2.md +++ b/src/chapter_3/chapter_3_2.md @@ -167,7 +167,7 @@ fn main() { fn main() { let a = [1, 2, 3, 4, 5]; //直接写数组的值 let b: [i32; 5] = [1, 2, 3, 4, 5]; //显示指定数组的类型和长度 - let c: [i32; 5] = [3; 5]; //数组每个元素为同样的值,等价于let a = [5, 5, 5, 5, 5]; + let c: [i32; 5] = [3; 5]; //数组每个元素为同样的值,等价于let a = [3, 3, 3, 3, 3]; } ``` From 80814f5e53bc44b0a47ad362875e00ed2f6e694d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A4=E7=8B=90=E4=B8=80=E5=86=B2?= <43949039+anonymousGiga@users.noreply.github.com> Date: Wed, 31 May 2023 14:16:27 +0800 Subject: [PATCH 4/4] Update chapter_3_13.md --- src/chapter_3/chapter_3_13.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/chapter_3/chapter_3_13.md b/src/chapter_3/chapter_3_13.md index 7f8c08c..c0980c7 100644 --- a/src/chapter_3/chapter_3_13.md +++ b/src/chapter_3/chapter_3_13.md @@ -246,7 +246,6 @@ fn main() { ```rust struct Closure<'a> { x: i32, - y: i32, } impl<'a> FnOnce<(i32,)> for Closure<'a> {