Update Ch13

This commit is contained in:
Peng Hailin, 2023-04-29 10:50:32 +08:00
parent 69d922fb22
commit 730912d846

View File

@ -668,18 +668,18 @@ warning: `iterator_demo` (bin "iterator_demo") generated 1 warning
assert_eq! (v2, vec! [2, 3, 4]);
```
*清单 13-15调用 `map` 方法来创建出一个新迭代器,并于随后调用 `collect` 方法来消费该新迭代器而创建出一个矢量值*
*清单 13-15调用 `map` 方法创建出新迭代器,并随后调用 `collect` 方法消费这个新的迭代器并创建出一个矢量值*
由于 `map` 取了一个闭包,因此这里就可以指定咱们要在各个条目上执行的任何操作了。对于阐明闭包在重用 `Iterator` 特质所提供的遍历行为的同时,怎样实现定制一些行为来讲,这可是一个极佳的示例了
由于 `map` 取了一个闭包,因此咱们便可指定出咱们想要对各个条目执行的任何操作。这是一个很好的例子说明闭包如何让咱们在重用Iterator属性提供的迭代行为的同时定制一些行为
可将多个调用,链接到迭代器适配器,来以可读方式执行一些复杂操作。但由于所有迭代器都是惰性的因此就必须调用一个消费适配器方法one of the consuming apdaptor methods来获取到迭代器适配器调用的结果。
咱们可将多个调用,链接到迭代器适配器,来以能读懂方式执行复杂操作。但由于所有迭代器都是惰性的因此咱们必须调用一个消费适配器方法one of the consuming apdaptor methods来获取调用迭代器适配器的结果。
### 使用捕获所在环境的闭包
### 使用捕获其环境的闭包
**Using Closures that Capture Their Environment**
相当多的迭代器适配器,都会将闭包取作参数,且通常作为参数指定给迭代器适配器的那些闭包,都将是些会捕获他们环境的闭包。
许多迭代器适配器,都会将闭包取作参数,且通常作为参数指定给迭代器适配器的那些闭包,都将是些会捕获他们环境的闭包。
这里将使用会取一个闭包的 `filter` 方法,来作为这方面的示例。改闭包会从其所在迭代器获取到一个条目,并返回要给 `bool`。在闭包返回 `true` 时,那个条目值就将被包含在由 `filter` 产生出的迭代中。在该闭包返回 `false` 时,那个条目值则不会被包含。