moveNext 方法
override
将迭代器向前推进到迭代中的下一个元素。
应在读取 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;
}