meson/docs/markdown/snippets/range.md

29 lines
729 B
Markdown
Raw Normal View History

2021-02-07 00:14:25 +08:00
## 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)
```