Метод lastWhere
E lastWhere(Возвращает последний элемент, удовлетворяющий заданному предикату test.
Итерируемый объект, который может напрямую обращаться к своим элементам, может проверять свои элементы в любом порядке (например, список начинает с проверки последнего элемента, а затем перемещается к началу списка). Реализация по умолчанию перебирает элементы в порядке итерации, проверяет test(element) для каждого и, наконец, возвращает последний, который соответствовал условию.
Если ни один элемент не удовлетворяет test, возвращается результат вызова функции orElse. Если orElse опущено, по умолчанию выбрасывается StateError.
Исходный код
E lastWhere(bool test(E element), {E orElse()}) {
int length = this.length;
for (int i = length - 1; i >= 0; i--) {
E element = this[i];
if (test(element)) return element;
if (length != this.length) {
throw new ConcurrentModificationError(this);
}
}
if (orElse != null) return orElse();
throw IterableElementError.noElement();
}
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-collection/ListMixin/lastWhere.html