我想要的是:
fn drain_in_chunks<T>(mut v: Vec<T> {
for chunk in v.drain.chunks(2){
do_something(chunk)}
}
我在每次迭代中,从v
中,移除大小为2的块,我这么做的原因是,因为我想把块移到一个函数中,然而,我不能在不移除元素的情况下,从向量中移走元素。
我可以这样做,但感觉太冗长了。
for (i, chunk) in v.chunks(2).enumerate().zip(0..) {
v.drain(i*2..(i+1)*2);
do_something(chunk)
}
还有更好的解决办法吗
1条答案
按热度按时间rslzwgfq1#
您可以使用
itertools
的tuples()
: