如何以N步迭代迭代器,并在每次迭代中提供N个值?

时间:2019-05-28 19:35:17

标签: functional-programming rust iterator

我正在尝试以一种实用的风格来做到这一点:

  • 具有N个元素的数组
  • 以4个元素为一组迭代数组
  • 根据4个元素的值过滤组数组。

使用结构化迭代将是这样。

let data: [i32; N] = get_data();

let mut result = vec![];
let mut i = 0;
while i < N {
    let value = do_some_reduction(data[i], data[i + 1], data[i + 2], data[i + 3]);
    if filter_criteria(value) {
        result.push(value);
    }
    i += 4;
}
// result now contains what I need

我试图从向量中获取一个迭代器并使用filter,但是我找不到一种方法来使4个元素递增,并使这4个元素可用于应用filter_criteriastep_by方法只是给我第一步的要素,而不是全部。

0 个答案:

没有答案