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