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