Метод all
Метод all проверяет, возвращает ли
предикат true для всех элементов
итератора. Он возвращает true, если
условие выполнено для каждого элемента,
и false, если хотя бы для одного
элемента предикат вернул false.
Параметром метод принимает замыкание-предикат,
которое получает ссылку на очередной элемент
и возвращает значение типа bool.
Метод является ленивым и завершает работу
досрочно: как только найдётся элемент, для
которого предикат вернул false,
перебор останавливается и метод сразу
возвращает false. Если итератор
пуст, метод возвращает true.
Синтаксис
iterator.all(predicate)
Пример
Давайте проверим, все ли элементы вектора
[1, 2, 3, 4, 5] являются чётными:
fn main()
{
let res = vec![1, 2, 3, 4, 5].iter().all(|x| x % 2 == 0);
println!("{}", res);
}
Результат выполнения кода:
false
Пример
Давайте проверим, все ли элементы вектора
[2, 4, 6, 8, 10] являются чётными:
fn main()
{
let res = vec![2, 4, 6, 8, 10].iter().all(|x| x % 2 == 0);
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим, все ли элементы итератора пустого вектора удовлетворяют условию:
fn main()
{
let res = Vec::<i32>::new().iter().all(|x| x % 2 == 0);
println!("{}", res);
}
Результат выполнения кода:
true