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.
Note: These properties are Keysharp additions; AutoHotkey's Enumerator has only Call.
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.