Rust 如何绕过“take_”而跳过值?
在尝试将调用链接在一起时,我丢失了每个调用的最后一个值 有没有一种方法可以像这样将调用链接在一起而不跳过值 代码:Rust 如何绕过“take_”而跳过值?,rust,Rust,在尝试将调用链接在一起时,我丢失了每个调用的最后一个值 有没有一种方法可以像这样将调用链接在一起而不跳过值 代码: 使用std::fmt; #[衍生(克隆)] 结构点{ 值:u8, xe:u8, xs:u8, y:u8, } impl fmt::点的调试{ fn fmt(&self,f:&mut fmt::Formatter使用and: 使用std::iter::from_fn; // ... 设mut-iter=vec.iter().peek(); // ... 设c:Vec=from_fn(
使用std::fmt;
#[衍生(克隆)]
结构点{
值:u8,
xe:u8,
xs:u8,
y:u8,
}
impl fmt::点的调试{
fn fmt(&self,f:&mut fmt::Formatter使用and:
使用std::iter::from_fn;
// ...
设mut-iter=vec.iter().peek();
// ...
设c:Vec=from_fn(| iter.next_if(|x | x.value!=5))
.克隆()
.收集();
// ...
设(a,b):(Vec,Vec)=fromfn(| iter.next_if(|x | x.xevar.y);
使用(更好)或itertools,只需替换该函数。您可以使用itertools板条箱中的方法。这不是主要问题的一部分,而是我随后遇到的另一个问题,如果在peek\u take\u while()的闭包中,则条件取决于以下几个值(例如,下一个值必须是3,下一个值必须是6)。您有处理该值的建议吗?(目前我能得到的最好方法是使用.enumerate()
执行检查(*I,&vec)
(请参阅),但我认为检查(iter.clone().take(2))
可能更好)JONAANTHOOLYLT光照你提供的一些信息我会说 Fuff-fn({校验(& MUT ITER))< /C>可能是最好的。如果你总是期望相同的数值考虑