moveNext 方法

bool moveNext()
覆盖

将迭代器移动到迭代过程中的下一个元素。

在读取 current 之前应调用此方法。如果调用 moveNext 返回 true,则 current 将包含迭代的下一个元素,直到再次调用 moveNext。如果调用返回 false,则没有更多元素,不应该再使用 current

可以在已返回 false 之后安全地调用 moveNext,但必须继续返回 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;
}