我正在尝试找到一种方法,在不使用.clone()的情况下检查for循环中是否处于迭代器的最后一个元素; 目前我正在做这个:
let sentence = "The quick brown fox.";
let words = sentence.split(' ');
let last = words.clone().last().unwrap();
for word in words {
if word == last {
print!("{}", word);
}
}
我也尝试在迭代器上使用.collect(),但这需要我使用.iter().enumerate()来检查最后一个索引,这对我来说似乎过于复杂:
let sentence = "The quick brown fox.";
let words: Vec<&str> = sentence.split(' ').collect();
for (i, word) in words.iter().enumerate() {
if i == words.len() - 1 {
print!("{}", word);
}
}
有没有一种更加简洁的方式来做这件事,也许只使用原始迭代器就可以了?
enumerate
是完全合适的。没有理由避免它。 - Denys Séguretenumerate
。 - Denys Séguret