mirror of
https://github.com/gnu4cn/rust-lang-zh_CN.git
synced 2024-12-27 13:21:09 +08:00
Improve Ch13
This commit is contained in:
parent
c456a59179
commit
01f1bb95b6
@ -785,9 +785,9 @@ impl Config {
|
||||
|
||||
咱们这里之所以需要 `clone` 方法,是由于在参数 `args` 中,咱们有一个 `String` 元素构成的切片,而 `build` 函数并不拥有 `args`。为返回 `Config` 实例的所有权,咱们不得不克隆 `Config` 结构体的 `query` 与 `filename` 字段,进而 `Config` 实例便可拥有他的值。
|
||||
|
||||
有了关于迭代器的新知识,那么就可以将这个 `build` 函数,修改为取得某个迭代器的所有权作为其参数,而不再是借用一个切片。与其使用对切片长度加以检查,以及所有进入到特定位置的那些代码,这里将运用迭代器功能。由于迭代器将访问到那些值,那么这样就将厘清这个 `Config::build` 函数,正在完成些什么事情。
|
||||
利用我们对迭代器的新知识,我们可以改变构建函数,使其拥有一个迭代器作为其参数,而不是借用一个切片。我们将使用迭代器的功能,而不是检查切片的长度并对特定位置进行索引的代码。这将明确 `Config::build` 函数正在做什么,因为迭代器将访问这些值。
|
||||
|
||||
一旦 `Config::build` 取得那个迭代器的所有权,而停止使用借用到的索引操作,你们这里就可以把那个迭代器中的那些 `String` 值,迁移到 `Config` 里去,而非调用 `clone` 方法并构造一个新的内存分配了。
|
||||
一旦 `Config::build` 取得迭代器的所有权,而不再使用借用的索引操作,咱们就可以将 `String` 值从迭代器迁移到 `Config` 中,而不是调用 `clone` 方法并构造新的内存分配。
|
||||
|
||||
|
||||
### 直接使用返回的迭代器
|
||||
|
Loading…
Reference in New Issue
Block a user