filter
奇数放行;偶数就地退回,不会进入后续。
等待候选
LAZY PIPELINE / 按需生产
下面这条链看着写了五步,但 filter 和 map 并不会抢跑。直到 collect 请求一个结果,调用才会从右向左传到源头,再把一个候选值从左向右送过每道关卡。
按“推进一个微步骤”,留意右侧消费器如何向上游要数据。有时为了凑出一个结果,源头得连续尝试好几个数。
链条已搭好,但没有任何闭包被调用。
奇数放行;偶数就地退回,不会进入后续。
只转换放行的值:把它平方。
丢掉前两个“平方后的结果”,不是前两个源元素。
交付第三个结果后,整条链就停止索取。
消费器持有目标类型,把每次拉到的值装进 Vec。
map、filter、skip 返回新的迭代器;搭链时不遍历数据。
不是先筛出完整数组,再把完整数组平方。中间结果通常不需要单独落地。
take(3) 一旦拿够三个结果就不再索取,所以 10 根本不会被检查。