|
|
@ -83,7 +83,7 @@ error[E0106]: missing lifetime specifier
|
|
|
|
| ^ expected lifetime parameter
|
|
|
|
| ^ expected lifetime parameter
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
第十章会讲到如何修复这个问题以便在结构体中储存引用,不过现在,通过通过从像`&str`这样的引用切换到像`String`这类拥有所有权的类型来修改修改这个错误。
|
|
|
|
第十章会讲到如何修复这个问题以便在结构体中储存引用,不过现在,通过从像`&str`这样的引用切换到像`String`这类拥有所有权的类型来修改修改这个错误。
|
|
|
|
|
|
|
|
|
|
|
|
## 一个示例程序
|
|
|
|
## 一个示例程序
|
|
|
|
|
|
|
|
|
|
|
@ -289,4 +289,4 @@ rect1 is Rectangle {
|
|
|
|
|
|
|
|
|
|
|
|
Rust 为我们提供了很多可以通过`derive`注解来使用的 trait,他们可以为我们的自定义类型增加有益的行为。这些 trait 和行为在附录 C 中列出。第十章会涉及到如何通过自定义行为来实现这些 trait,同时还有如何创建你自己的 trait。
|
|
|
|
Rust 为我们提供了很多可以通过`derive`注解来使用的 trait,他们可以为我们的自定义类型增加有益的行为。这些 trait 和行为在附录 C 中列出。第十章会涉及到如何通过自定义行为来实现这些 trait,同时还有如何创建你自己的 trait。
|
|
|
|
|
|
|
|
|
|
|
|
我们的`area`函数是非常明确的————它只是计算了长方形的面积。如果这个行为与`Rectangle`结构体再结合得更紧密一些就更好了,因为这明显就是`Rectangle`类型的行为。现在让我们看看如何继续重构这些代码,来将`area`函数协调进`Rectangle`类型定义的`area`**方法**中。
|
|
|
|
我们的`area`函数是非常明确的————它只是计算了长方形的面积。如果这个行为与`Rectangle`结构体再结合得更紧密一些就更好了,因为这明显就是`Rectangle`类型的行为。现在让我们看看如何继续重构这些代码,来将`area`函数协调进`Rectangle`类型定义的`area`**方法**中。
|
|
|
|