ArrIter type

Arr (array) iterator.

Example

my_args = %[--switch val some other positional --sw2 val2]
i = Iter(my_args)

named = {}
positional = []

while i {
	t = i.next()
	m = t ~ Pfx('--')
	if m {
		named[m.after] = i.next()
	} else {
		positional.push(t)
	}
}

echo(named)
echo(positional)
# Output:
#   {switch=val, sw2=val2}
#   [some,other,positional]

Direct parent types

Iter
Iterator. Parent type for all specific iterator types.
Direct subtypes: 7
Eachable1
Eachable which each() calls the callback with one argument
Direct subtypes: 17

Methods

Bool(i:ArrIter)
Check whether there are more array elements to iterate over.

Returns

Bool. true: next() will return next element. false: next() will throw NoNext
init(i:ArrIter, arr:Arr)
ArrIter constructor.

Example

i = ArrIter([10, 20, 30])
next(i:ArrIter)
Get value of the next element of the array iterated over.

Returns

Any
peek(i:ArrIter)
Preview value of the next element of the array iterated over. Does not affect internal pointer which means it does not affect of value returned by next().

Returns

Any
Str(i:ArrIter)
Textual representation of ArrIter.

Returns

Str