mirror of
https://github.com/rust-lang-cn/book-cn.git
synced 2025-02-02 15:28:40 +08:00
Merge pull request #46 from YangFong/doc-ch10-00
doc: Optimize the description at ch10-00
This commit is contained in:
commit
080c7003e4
@ -12,7 +12,7 @@
|
||||
|
||||
## 提取函数来减少重复
|
||||
|
||||
在介绍泛型语法之前,首先来回顾一个不使用泛型的处理重复的技术:提取一个函数。当熟悉了这个技术以后,我们将使用相同的机制来提取一个泛型函数!如同你识别出可以提取到函数中重复代码那样,你也会开始识别出能够使用泛型的重复代码。
|
||||
在介绍泛型语法之前,首先来回顾一个不使用泛型处理重复的技术:提取一个函数。当熟悉了这个技术以后,我们将使用相同的机制来提取一个泛型函数!如同你识别出可以提取到函数中重复代码那样,你也会开始识别出能够使用泛型的重复代码。
|
||||
|
||||
考虑一下这个寻找列表中最大值的小程序,如示例 10-1 所示:
|
||||
|
||||
@ -111,7 +111,7 @@ fn main() {
|
||||
|
||||
<span class="caption">示例 10-3:抽象后的寻找两个数字列表最大值的代码</span>
|
||||
|
||||
`largest` 函数有一个参数 `list`,它代表会传递给函数的任何具体的 `i32`值的 slice。函数定义中的 `list` 代表任何 `&[i32]`。当调用 `largest` 函数时,其代码实际上运行于我们传递的特定值上。
|
||||
`largest` 函数有一个参数 `list`,它代表会传递给函数的任何具体的 `i32` 值的 slice。函数定义中的 `list` 代表任何 `&[i32]`。当调用 `largest` 函数时,其代码实际上运行于我们传递的特定值上。
|
||||
|
||||
总的来说,从示例 10-2 到示例 10-3 中涉及的机制经历了如下几步:
|
||||
|
||||
@ -119,6 +119,6 @@ fn main() {
|
||||
2. 将重复代码提取到了一个函数中,并在函数签名中指定了代码中的输入和返回值。
|
||||
3. 将重复代码的两个实例,改为调用函数。
|
||||
|
||||
在不同的场景使用不同的方式,我们也可以利用相同的步骤和泛型来减少重复代码。与函数体可以在抽象`list`而不是特定值上操作的方式相同,泛型允许代码对抽象类型进行操作。
|
||||
在不同的场景使用不同的方式,我们也可以利用相同的步骤和泛型来减少重复代码。与函数体可以在抽象 `list` 而不是特定值上操作的方式相同,泛型允许代码对抽象类型进行操作。
|
||||
|
||||
如果我们有两个函数,一个寻找一个 `i32` 值的 slice 中的最大项而另一个寻找 `char` 值的 slice 中的最大项该怎么办?该如何消除重复呢?让我们拭目以待!
|
||||
如果我们有两个函数,一个寻找 `i32` 值的 slice 中的最大项,而另一个寻找 `char` 值的 slice 中的最大项,该怎么办?该如何消除重复呢?让我们拭目以待!
|
||||
|
Loading…
Reference in New Issue
Block a user