Improve Ch13

This commit is contained in:
Unisko PENG 2023-05-04 11:46:45 +08:00
parent a3156f4ccf
commit c456a59179

View File

@ -781,9 +781,9 @@ impl Config {
*清单 13-17清单 12-23 中 `Config::build` 函数的重现*
当时,我们说不用担心低效的克隆调用,因为将来咱们会除它们。好吧,现在是时候了!
当时,我们说不用担心低效的克隆调用,因为将来咱们会除它们。好吧,现在是时候了!
之所以这里需要 `clone` 方法,是由于这里在参数 `args` 中,有着由一些 `String` 元素构成的切片,而这个 `build` 函数并不拥有 `args`。为返回某个 `Config` 实例的所有权,那里就不得不克隆 `Config` 结构体的 `query``filename` 字段,如此该 `Config` 实例就能拥有他的这些值。
咱们这里之所以需要 `clone` 方法,是由于在参数 `args` 中,咱们有一个 `String` 元素构成的切片,而 `build` 函数并不拥有 `args`。为返回 `Config` 实例的所有权,咱们不得不克隆 `Config` 结构体的 `query``filename` 字段,进而 `Config` 实例便可拥有他的值。
有了关于迭代器的新知识,那么就可以将这个 `build` 函数,修改为取得某个迭代器的所有权作为其参数,而不再是借用一个切片。与其使用对切片长度加以检查,以及所有进入到特定位置的那些代码,这里将运用迭代器功能。由于迭代器将访问到那些值,那么这样就将厘清这个 `Config::build` 函数,正在完成些什么事情。