Rust 如何划分锈蚀结果的向量?

Rust 如何划分锈蚀结果的向量?,rust,Rust,基本上,我在寻找Rust中的等价物,即将Vec转换为Result 我知道我可以使用collect::将Vec转换为Result,但是当我尝试collect::时,我会得到一个错误,说这样的实现丢失了 我也知道这可以通过使用突变来实现,但我想知道是否有任何不可变的替代方案可以研究?您可以使用该方法进行分区,在您的特定情况下,使用itertools: 使用itertools::{或者,itertools}; fn main(){ 让成功和失败=vec![Ok(1),Err(false),Err(tr

基本上,我在寻找Rust中的等价物,即将
Vec
转换为
Result

我知道我可以使用
collect::
Vec
转换为
Result
,但是当我尝试
collect::
时,我会得到一个错误,说这样的实现丢失了

我也知道这可以通过使用突变来实现,但我想知道是否有任何不可变的替代方案可以研究?

您可以使用该方法进行分区,在您的特定情况下,使用itertools:

使用itertools::{或者,itertools};
fn main(){
让成功和失败=vec![Ok(1),Err(false),Err(true),Ok(2)];
让(成功,失败):(Vec,Vec)=
成功与失败
.into_iter()
.partition_映射(| r |匹配r{
Ok(v)=>任一::左(v),
Err(v)=>任一::Right(v),
});
断言(成功,[1,2]);
断言(失败,[假,真]);
}
您可以使用以下方法进行分区:在特定情况下,使用itertools:

使用itertools::{或者,itertools};
fn main(){
让成功和失败=vec![Ok(1),Err(false),Err(true),Ok(2)];
让(成功,失败):(Vec,Vec)=
成功与失败
.into_iter()
.partition_映射(| r |匹配r{
Ok(v)=>任一::左(v),
Err(v)=>任一::Right(v),
});
断言(成功,[1,2]);
断言(失败,[假,真]);
}

Rust中的
partitionEithers
等价物是
fn(Vec)->(Vec,Vec)
——注意
结果是一个枚举,和
Result
可以包含
Vec
Vec
,但不能同时包含两者。@Stargateur你能解释一下为什么它没有意义吗?预期的错误类型是
Vec
哦,我昨天一定很累了:p
分区中的
分区在锈迹中的等价物将是
fn(Vec)->(Vec,Vec)
--请注意,
Result
是一个枚举,
Result
可以包含
Vec
Vec
,但不能同时包含两者。@Stargateur你能解释为什么它没有意义吗?预期的错误类型是
Vec
哦,我昨天一定很累了:pThanks,我应该早点采用
itertools
。谢谢,我应该早点采用
itertools