29 lines
729 B
Markdown
29 lines
729 B
Markdown
![]() |
## New `range()` function
|
||
|
|
||
|
``` meson
|
||
|
rangeobject range(stop)
|
||
|
rangeobject range(start, stop[, step])
|
||
|
```
|
||
|
|
||
|
Return an opaque object that can be only be used in `foreach` statements.
|
||
|
- `start` must be integer greater or equal to 0. Defaults to 0.
|
||
|
- `stop` must be integer greater or equal to `start`.
|
||
|
- `step` must be integer greater or equal to 1. Defaults to 1.
|
||
|
|
||
|
It cause the `foreach` loop to be called with the value from `start` included
|
||
|
to `stop` excluded with an increment of `step` after each loop.
|
||
|
|
||
|
```meson
|
||
|
# Loop 15 times with i from 0 to 14 included.
|
||
|
foreach i : range(15)
|
||
|
...
|
||
|
endforeach
|
||
|
```
|
||
|
|
||
|
The range object can also be assigned to a variable and indexed.
|
||
|
```meson
|
||
|
r = range(5, 10, 2)
|
||
|
assert(r[2] == 9)
|
||
|
```
|
||
|
|