首页 > 解决方案 > 如何从 iter() 和 iter().rev() 获得相同类型的迭代器?

问题描述

根据一个条件,我需要在一个方向或另一个方向上迭代一个数组。所以,我想在不知道我在哪个方向的情况下进行迭代,这就是为什么我想要一个存储迭代器的变量。

这里有一些无法编译的游乐场: https ://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=956563a1b42c97333e35a1667ae135a7

fn main() {
    let array = [1, 2 , 3];
    let condition = false;

    let iter = if condition {array.iter()} else {array.iter().rev()};
    iter.for_each(|element| {/*Do something where the order matters*/});
}

标签: rust

解决方案


推荐阅读