mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-03-14 03:10:44 +08:00
Update Ch10
This commit is contained in:
parent
d90c973767
commit
3255cab4bd
@ -397,11 +397,12 @@ impl Point<f32, f32> {
|
||||
}
|
||||
```
|
||||
|
||||
*清单 10-10:一个只适用于有着对于泛型参数 `<T, U>` 的某种特定具体类型结构体的 `impl` 代码块*
|
||||
*清单 10-10:只适用于有着特定具体类型泛型参数 `<T, U>` 的结构体的一个 `impl` 代码块*
|
||||
|
||||
此代码表示类型 `Option<f32, f32>` 将有着一个 `distance_from_origin` 方法;别的其中 `T, U` 不是 `f32` 的 `Option<T, U>` 实例,就不会有这个定义的方法。该方法度量了这个点与坐标 `(0.0, 0.0)` 处点的距离,并使用了只对浮点数类型可以的数学运算。
|
||||
此代码表示类型 `Option<f32, f32>` 将有一个 `distance_from_origin` 方法;其中 `T, U` 不是 `f32` 的其他 `Option<T, U>` 实例,就不会被定义这个方法。该方法度量了咱们的点与坐标 `(0.0, 0.0)` 处点的距离,并使用了只对浮点数类型可行的数学运算。
|
||||
|
||||
结构体定义中的泛型参数,并不总是与在同一结构体方法签名中所用的那些泛型参数相同。下面清单 10-11 就对 `Point` 结构体使用了泛型 `T` 与 `U`,对 `mixup` 方法签名,则使用了 `X Y`,来让这个示例更明显。该方法以来自 `self` `Point` 的 `x` 值(类型为 `T`),与来自传入的 `Point` 值的 `y` (类型为 `Y`),创建了一个新的 `Point`。
|
||||
结构体定义中的泛型参数,并不总与咱们在同一结构体方法签名中,所使用的那些泛型参数相同。为让示例更明确,下面清单 10-11 对 `Point` 结构体,使用了泛型 `T` 与 `U`,而对 `mixup` 方法签名则使用了 `X` `Y`。
|
||||
这个方法使用来自 `self` `Point` 的 `x` 值(类型为 `T`),与来自传入的那个 `Point` 值的 `y` (类型为 `Y`),创建出一个新的 `Point`。
|
||||
|
||||
文件名:`src/main.rs`
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user