Iterator

1

iterator

4 分钟

C 程序员写遍历,第一反应通常是索引或指针:

for (size_t i = 0; i < len; i++) {
    sum += data[i];
}

或者:

for (uint8_t *p = buf; p < buf + len; p++) {
    *p ^= key;
}

Rust 当然也能写循环,但更常用的模型是 iterator。它不是“高级语法糖”,而是把遍历过程变成一个可以传递、组合、消费的值。

阅读更多