Это выглядит немного неточной формулировкой.
Реальное значение этих слов таково: если вы отбросите итератор drain
, не исчерпав его, он отбросит все элементы , использованные для его создания. . Поскольку вы попросили использовать только первые три элемента, он не опустошит весь вектор, а только первую часть;но он сделает это, даже если он не используется:
fn main() {
let mut a = vec![1, 2, 3, 4, 5];
{
let _ = a.drain(0..3);
}
println!("Hello, world! {:?}", a);
}
Hello, world! [4, 5]
детская площадка
Вы можете понять это следующим образом: «коллекция», упомянутая здесь,не начальная коллекция, к которой был вызван drain
, а скорее «подколлекция», заданная переданным диапазоном.