Метод moveNext
Перемещает итератор к следующему элементу итерации.
Его следует вызвать перед чтением current. Если вызов moveNext возвращает true, current будет содержать следующий элемент итерации, пока moveNext не будет вызван снова. Если вызов возвращает false, дальнейших элементов нет, и больше не следует использовать current.
Можно безопасно вызывать moveNext после того, как он уже вернул false, но он должен продолжать возвращать false и не оказывать никакого другого эффекта.
Вызов moveNext может завершиться ошибкой по разным причинам, в том числе из-за одновременного изменения базовой коллекции. В этом случае итератор может оказаться в несогласованном состоянии, и дальнейшее поведение итератора, включая результат чтения current, не определено.
final colors = ['blue', 'yellow', 'red']; final colorsIterator = colors.iterator; print(colorsIterator.moveNext()); // true print(colorsIterator.moveNext()); // true print(colorsIterator.moveNext()); // true print(colorsIterator.moveNext()); // false
Реализация
bool moveNext() {
int nextPosition = _position + 1;
if (nextPosition < _length) {
_current = _array[nextPosition];
_position = nextPosition;
return true;
}
_current = null;
_position = _length;
return false;
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-html/FixedSizeListIterator/moveNext.html