Метод takeWhile
-
bool test(
- E element
override
Возвращает ленивую итерацию ведущих элементов, удовлетворяющих test.
Фильтрация происходит лениво. Каждый новый итератор возвращаемой итерации начинает итерироваться по элементам this.
Элементы можно вычислить, перебирая итератор, пока не будет найден элемент, для которого test(element) ложно. В этот момент возвращаемая итерация останавливается (ее moveNext() возвращает false).
Пример:
final numbers = <int>[1, 2, 3, 5, 6, 7]; var result = numbers.takeWhile((x) => x < 5); // (1, 2, 3) result = numbers.takeWhile((x) => x != 3); // (1, 2) result = numbers.takeWhile((x) => x != 4); // (1, 2, 3, 5, 6, 7) result = numbers.takeWhile((x) => x.isOdd); // (1)
Реализация
Iterable<E> takeWhile(bool test(E element)) {
return TakeWhileIterable<E>(this, test);
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-collection/ListMixin/takeWhile.html