Rust 调用take后如何继续使用迭代器?
我想从迭代器中收集一些项,然后遍历其余项,类似这样:Rust 调用take后如何继续使用迭代器?,rust,iterator,Rust,Iterator,我想从迭代器中收集一些项,然后遍历其余项,类似这样: let iterator = text.split_whitespace(); let first_ten_words = iterator.take(10).collect(); for word in iterator { // This should iterate over the remaining words. } let iterator = text.split_whitespace(); let first_te
let iterator = text.split_whitespace();
let first_ten_words = iterator.take(10).collect();
for word in iterator {
// This should iterate over the remaining words.
}
let iterator = text.split_whitespace();
let first_ten_words = iterator.by_ref().take(10).collect();
for word in iterator {
// This should iterate over the remaining words.
}
这不起作用,因为take()
使用迭代器
显然,我可以使用split_whitespace()
两次和skip(10)
,但我假设这将对前10个单词进行两次拆分,因此效率低下
有更好的方法吗?您可以这样使用:
let iterator = text.split_whitespace();
let first_ten_words = iterator.take(10).collect();
for word in iterator {
// This should iterate over the remaining words.
}
let iterator = text.split_whitespace();
let first_ten_words = iterator.by_ref().take(10).collect();
for word in iterator {
// This should iterate over the remaining words.
}