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;
}