Update ch10-01-syntax.md

原文在这里进行了一点修改
pull/881/head
qwer252 6 days ago committed by GitHub
parent b322cf1b61
commit a10aa1a25b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -131,7 +131,7 @@ enum Result<T, E> {
这里在 `Point<T>` 上定义了一个叫做 `x` 的方法用于返回字段 `x` 中数据的引用。
注意必须在 `impl` 后面声明 `T`,这样就可以在 `Point<T>` 上实现的方法中使用 `T` 了。通过在 `impl` 之后声明泛型 `T`Rust 就知道 `Point` 的尖括号中的类型是泛型而不是具体类型。我们可以为泛型参数选择一个与结构体定义中声明的泛型参数所不同的名称,不过依照惯例使用了相同的名称。在声明泛型类型参数的 `impl` 中编写的方法将会定义在该类型的任何实例上,无论最终替换泛型类型参数的是何具体类型。(译者注:以示例 10-9 为例,`impl` 中声明了泛型类型参数 `T``x` 是编写在 `impl` 中的方法,`x` 方法将会定义在 `Point<T>` 的任何实例上,无论最终替换泛型类型参数 `T` 的是何具体类型)。
注意必须在 `impl` 后面声明 `T`,这样就可以在 `Point<T>` 上实现的方法中使用 `T` 了。通过在 `impl` 之后声明泛型 `T`Rust 就知道 `Point` 的尖括号中的类型是泛型而不是具体类型。我们可以为泛型参数选择一个与结构体定义中声明的泛型参数所不同的名称,不过依照惯例使用了相同的名称。如果你在`impl`中编写一个声明泛型类型的方法,那么该方法将在任何类型的实例上定义,无论最终用什么具体类型来替换泛型类型。(译者注:以示例 10-9 为例,`impl` 中声明了泛型类型参数 `T``x` 是编写在 `impl` 中的方法,`x` 方法将会定义在 `Point<T>` 的任何实例上,无论最终替换泛型类型参数 `T` 的是何具体类型)。
定义方法时也可以为泛型指定限制constraint。例如可以选择为 `Point<f32>` 实例实现方法,而不是为泛型 `Point` 实例。示例 10-10 展示了一个没有在 `impl` 之后(的尖括号)声明泛型的例子,这里使用了一个具体类型,`f32`

Loading…
Cancel
Save