Enumerator Object

An enumerator is a type of function object which is called repeatedly to enumerate a sequence of values.

Enumerators exist primarily to support For-loops, and are not usually called directly. The for-loop documentation details the process by which an enumerator is called. The script may implement an enumerator to control which values are assigned to the for-loop's variables on each iteration of the loop.

Built-in enumerators are instances of the Enumerator class (which is derived from Func), but any function object can potentially be used with a for-loop.

Table of Contents

Methods

Call

Retrieves the next item or items in an enumeration.

Boolean := Enum.Call(&OutputVar1 , &OutputVar2)
Boolean := EnumFunction(&OutputVar1 , &OutputVar2)

Parameters

&OutputVar1, &OutputVar2

Type: VarRef

One or more references to output variables for the enumerator to assign values.

Return Value

Type: Integer (boolean)

This method returns 1 (true) if successful or 0 (false) if there were no items remaining.

Remarks

A simple function definition can be used to create an enumerator; in that case, the Call method is implied.

When defining your own enumerator, the number of parameters should match the number of variables expected to be passed to the for-loop (before the "in" keyword). This is usually either 1 or 2, but a for-loop can accept up to 19 variables. To allow the method to accept a varying number of variables, declare optional parameters.

An exception is thrown when the for-loop attempts to call the method if there are more variables than parameters (too many parameters passed, too few defined) or fewer variables than mandatory parameters.

Properties

These properties are Keysharp extensions.

Count

Gets the number of values the enumerator supplies on each iteration, which is 1 or 2.

Number := Enum.Count

This is the value the for-loop passed to __Enum when it requested the enumerator, so a wrapper enumerator can see how many variables its caller intends to assign.

Source

Gets the object being enumerated.

Obj := Enum.Source

For a built-in enumerator this is the Array, Map or other object which produced it.

For-loop, OwnProps, __Enum (Array), __Enum (Map)