基本上,我在寻找Rust中等价于partitionEithers的函数,即将Vec<Result<A, B>>
转换成Result<Vec<A>, Vec<B>>
。
我知道可以通过使用collect::<Result<Vec<A>, B>>
将Vec<Result<A, B>>
转换为Result<Vec<A>, B>
,但是当我尝试使用collect::<Result<Vec<A>, Vec<B>>>
时,会得到一个错误,表明缺少该实现。
此外,我知道这可以通过变异来完成,但我想知道是否有任何不可变的替代方案?
partitionEithers
的等效函数将是fn(Vec<Result<A, B>>) -> (Vec<A>, Vec<B>)
-- 请注意,Result
是一个枚举类型,而Result<Vec<A>, Vec<B>>
可以包含_要么_Vec<A>
要么Vec<B>
,但不能同时包含两者。 - EvilTakVec<B>
。 - Wong Jia Hau