zipWith.rs
标准库提供了几种在std::iter模块中迭代集合的方案。 其中有Zip和Map迭代器,但是没有ZipWith 。
看起来你应该能够非常简单地实现一个zip_with函数,如下所示:
fn zipWith <R> R> (combo: C, left: U, right: U) -> ??? {
left. zip (right). map ( | (l, r) | combo (l, r))
}
但是,返回类型应该是什么? 在抽象返回类型进入 rust 之前,我们不能返回impl Iterator<R> ,我们只能返回迭代器的具体实现——在这种情况下,我们将返回一个Map 。
我觉得这很丑! 类型应该传达函数的意图,而zip_with的意图不是(仅)到Map 。
评论0
最新资源