Метод takeWhile
Метод takeWhile класса Iterable возвращает новый
итерируемый объект, который содержит элементы исходной коллекции
с начала до первого элемента, для которого переданная функция-предикат
вернула false. Сам первый неподходящий элемент и все
последующие элементы в результат не попадают. В первый и единственный
параметр мы передаем функцию-предикат, которая принимает элемент
коллекции и возвращает bool. Возвращаемый объект является
ленивым: элементы вычисляются только по мере обхода. Если первый же
элемент не удовлетворяет условию, результат будет пустым.
Синтаксис
iterable.takeWhile(bool test(E element))
Пример
Давайте возьмем элементы списка с начала до первого элемента,
который больше или равен 3:
void main()
{
Iterable<int> iter = [1, 2, 3, 4, 5];
Iterable<int> res = iter.takeWhile((int el) => el < 3);
print(res.toList());
}
Результат выполнения кода:
[1, 2]
Пример
Давайте возьмем элементы списка строк до первого элемента,
длина которого равна 3:
void main()
{
Iterable<String> iter = ['a', 'b', 'c', 'd', 'e'];
Iterable<String> res = iter.takeWhile((String el) => el.length < 3);
print(res.toList());
}
Результат выполнения кода:
["a", "b", "c"]
Пример
Если первый же элемент не удовлетворяет условию, результат будет пустым:
void main()
{
Iterable<int> iter = [5, 1, 2, 3, 4];
Iterable<int> res = iter.takeWhile((int el) => el < 3);
print(res.toList());
}
Результат выполнения кода:
[]