Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何绕过“take_”而跳过值?_Rust - Fatal编程技术网

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>可能是最好的。如果你总是期望相同的数值考虑