mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2025-01-30 06:00:13 +08:00
Improve Ch13
This commit is contained in:
parent
d87275fe33
commit
220448ed37
@ -850,11 +850,11 @@ impl Config {
|
||||
由于咱们正取得 `args` 的所有权,且咱们将通过对其迭代而修改 `args`,咱们便可把 `mut` 关键字,添加到 `args` 参数的说明中,以将其构造为可变。
|
||||
|
||||
|
||||
### 使用 `Iterator` 特质的方法取代原先的索引操作
|
||||
### 使用 `Iterator` 特质方法代替索引
|
||||
|
||||
**Using `Iterator` Trait Methods Instead of Indexing**
|
||||
|
||||
接下来,这里将修正 `Config::build` 的函数体。由于 `args` 实现了 `Iterator` 特质,因此就明白这里可以在他上面调用 `next` 方法!下面清单 13-20 将清单 12-23 中的代码,更新为了使用 `next` 方法:
|
||||
接下来,咱们将修正 `Config::build` 函数的主体。由于 `args` 实现了 `Iterator` 特质,咱们便清楚咱们可以调用他上面 `next` 方法!下面清单 13-20 将清单 12-23 中的代码,更新为了使用 `next` 方法:
|
||||
|
||||
文件名:`src/data_structures.rs`
|
||||
|
||||
@ -886,9 +886,9 @@ impl Config {
|
||||
}
|
||||
```
|
||||
|
||||
*清单 13-20:将 `Config::build` 的函数体,修改为使用迭代器方法*
|
||||
*清单 13-20:将 `Config::build` 函数的主体,修改为使用迭代器方法*
|
||||
|
||||
请记住 `env::args` 返回值中的第一个,是程序的名字。这里是要忽略那个值,而到下一值处,因此这里首先调用了 `next` 并对该返回值什么也没做。其次,这里调用了 `next` 来获取到这里打算将其放入 `Config` 的 `query` 字段的那个值。在 `next` 返回的是一个 `Some` 时,这里使用了一个 `match` 来提取该值。在其返回的是 `None` 时,就表示没有给到足够的参数,同事这里及早地返回了一个 `Err` 值。对于 `filename` 值,这里进行了同样的处理。
|
||||
请记住 `env::args` 返回值中的第一个值,是程序的名字。咱们是要忽略那个值,而到下一值处,所以咱们首先调用 `next`,并对返回值不做任何处理。其次,咱们调用 `next` 来获取到咱们想要放入 `Config` 的 `query` 字段的值。若 `next` 返回一个 `Some`,咱们就使用 `match` 来提取该值。若其返回了 `None`,就意味着没有给出足够的参数,而咱们就及早地返回一个 `Err` 值。对于 `filename` 值,咱们进行了同样的处理。
|
||||
|
||||
|
||||
### 使用迭代器适配器令到代码更清晰
|
||||
|
Loading…
Reference in New Issue
Block a user