An Iterator is a structure that permits iteration over elements of type T.

Any class with matching hasNext and next fields is considered an Iterator and can then be used e.g. in for-loops. This makes it easy to implement custom iterators.

Properties

next ():T

Returns the current item of the Iterator and advances to the next one.

This method is not required to check hasNext first. A call to this method while hasNext is false yields unspecified behavior.

On the other hand iterators should not require a call to hasNext before the first call to next if an element is available.

hasNext ():Bool

Returns false if the iteration is complete, true otherwise.

Usually iteration is considered to be complete if all elements of the underlying data structure were handled through calls to next(). However, in custom iterators any logic may be used to determine the completion state.