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.
Retrieves the next item or items in an enumeration.
Boolean := Enum.Call(&OutputVar1 , &OutputVar2)
Boolean := EnumFunction(&OutputVar1 , &OutputVar2)
Type: VarRef
One or more references to output variables for the enumerator to assign values.
Type: Integer (boolean)
This method returns 1 (true) if successful or 0 (false) if there were no items remaining.
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.
These properties are Keysharp extensions.
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.
Gets the object being enumerated.
Obj := Enum.Source
For a built-in enumerator this is the Array, Map or other object which produced it.