From 4d1e54cb826e4abf590883a1a9c33a011a7c46c1 Mon Sep 17 00:00:00 2001 From: gfzum Date: Fri, 3 Mar 2023 16:39:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(2.7=202.8.1):=20=E5=BC=95=E7=94=A8=E5=9D=97?= =?UTF-8?q?=E4=B8=AD=E5=8F=A5=E6=9C=AB=E5=8F=A5=E5=8F=B7=EF=BC=8C=E4=B8=AD?= =?UTF-8?q?=E6=96=87=E8=AF=AD=E5=8F=A5=E4=B8=AD=E8=8B=B1=E6=96=87=E6=8B=AC?= =?UTF-8?q?=E5=8F=B7=E6=9B=BF=E6=8D=A2=E4=B8=BA=E4=B8=AD=E6=96=87=E6=8B=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/basic/method.md | 2 +- src/basic/trait/trait.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/basic/method.md b/src/basic/method.md index e306127e..8964ee35 100644 --- a/src/basic/method.md +++ b/src/basic/method.md @@ -220,7 +220,7 @@ impl Rectangle { } ``` -> Rust 中有一个约定俗成的规则,使用 `new` 来作为构造器的名称,出于设计上的考虑,Rust 特地没有用 `new` 作为关键字 +> Rust 中有一个约定俗成的规则,使用 `new` 来作为构造器的名称,出于设计上的考虑,Rust 特地没有用 `new` 作为关键字。 因为是函数,所以不能用 `.` 的方式来调用,我们需要用 `::` 来调用,例如 `let sq = Rectangle::new(3, 3);`。这个方法位于结构体的命名空间中:`::` 语法用于关联函数和模块创建的命名空间。 diff --git a/src/basic/trait/trait.md b/src/basic/trait/trait.md index 0f1e89ef..3606fee9 100644 --- a/src/basic/trait/trait.md +++ b/src/basic/trait/trait.md @@ -1,6 +1,6 @@ # 特征 Trait -如果我们想定义一个文件系统,那么把该系统跟底层存储解耦是很重要的。文件操作主要包含四个:`open` 、`write`、`read`、`close`,这些操作可以发生在硬盘,可以发生在内存,还可以发生在网络IO甚至(...我实在编不下去了,大家来帮帮我)。总之如果你要为每一种情况都单独实现一套代码,那这种实现将过于繁杂,而且也没那个必要。 +如果我们想定义一个文件系统,那么把该系统跟底层存储解耦是很重要的。文件操作主要包含四个:`open` 、`write`、`read`、`close`,这些操作可以发生在硬盘,可以发生在内存,还可以发生在网络IO甚至(...我实在编不下去了,大家来帮帮我)。总之如果你要为每一种情况都单独实现一套代码,那这种实现将过于繁杂,而且也没那个必要。 要解决上述问题,需要把这些行为抽象出来,就要使用 Rust 中的特征 `trait` 概念。可能你是第一次听说这个名词,但是不要怕,如果学过其他语言,那么大概率你听说过接口,没错,特征跟接口很类似。