| Qore Programming Language Reference Manual 2.2.0

Loading...
Searching...
No Matches
Public Member Functions | List of all members
Qore::AbstractIterator Class Reference

This class defines an abstract interface for iterators. More...

`#include <QC_AbstractIterator.dox.h>`

Inheritance diagram for Qore::AbstractIterator:
[legend]

## Public Member Functions
abstract auto | getValue ()
| returns the current value
abstract bool | next ()
| Moves the current position to the next element; returns False if there are no more elements.
abstract bool | valid ()
| returns True if the iterator is currently pointing at a valid element, False if not

## Detailed Description

This class defines an abstract interface for iterators.

Classes inheriting this class can be used to iterate abstract or complex objects with while Statements (using AbstractIterator::next()) or directly in the following language constructs:

- Map Operator (map)
- Fold Right Operator (foldr) and Fold Left Operator (foldl)
- Select From List Operator (select)
- foreach Statements

## Member Function Documentation

## ◆ getValue()

abstract auto Qore::AbstractIterator::getValue | ( |  | ) |

returns the current value

Returns
  the current value

Example:
  while (i.next()) {
  printf("+ %y\n", i.getValue());
  }

Exceptions

  INVALID-ITERATOR | the iterator is not pointing at a valid element

See also
  AbstractIterator::valid()

## ◆ next()

abstract bool Qore::AbstractIterator::next | ( |  | ) |

Moves the current position to the next element; returns False if there are no more elements.

This method will return True again after it returns False once if the object being iterated is not empty, otherwise it will always return False. The iterator object should not be used after this method returns False

Returns
  False if there are no more elements (in which case the iterator object is invalid and should not be used); True if successful (meaning that the iterator object is valid)

Example:
  while (i.next()) {
  printf(" + %y\n", i.getValue());
  }

## ◆ valid()

abstract bool Qore::AbstractIterator::valid | ( |  | ) |

returns True if the iterator is currently pointing at a valid element, False if not

Returns
  True if the iterator is currently pointing at a valid element, False if not

Example:
  if (i.valid())
  printf("current value: %y\n", i.getValue());