Метод size_hint
Метод size_hint возвращает кортеж из двух чисел:
нижнюю границу и опциональную верхнюю границу
оставшегося количества элементов итератора.
Метод не принимает параметров и возвращает значение
типа (usize, Option<usize>).
Нижняя граница является точной, а верхняя может
быть None, если итератор не знает своего
точного размера.
Синтаксис
iterator.size_hint()
Пример
Давайте получим границы размера для итератора вектора:
fn main()
{
let v = vec![1, 2, 3, 4, 5];
let iter = v.iter();
let res = iter.size_hint();
println!("{:?}", res);
}
Результат выполнения кода:
(5, Some(5))
Пример
Давайте получим границы размера после пропуска нескольких элементов итератора:
fn main()
{
let v = vec![1, 2, 3, 4, 5];
let mut iter = v.iter();
iter.next();
iter.next();
let res = iter.size_hint();
println!("{:?}", res);
}
Результат выполнения кода:
(3, Some(3))
Пример
Давайте получим границы размера для итератора с фильтрацией, где верхняя граница неизвестна:
fn main()
{
let v = vec![1, 2, 3, 4, 5];
let iter = v.iter().filter(|&&x| x > 2);
let res = iter.size_hint();
println!("{:?}", res);
}
Результат выполнения кода:
(0, Some(5))