45 lines
1.1 KiB
YAML
45 lines
1.1 KiB
YAML
name: range
|
|
returns: range
|
|
since: 0.58.0
|
|
description: |
|
|
Return an opaque object that can be only be used in `foreach` statements.
|
|
|
|
<pre><code class="language-meson">[[@range]] range([[@int]] <b>stop</b>)
|
|
[[@range]] range([[@int]] <b>start</b>, [[@int]] <b>stop</b>[, [[@int]] <b>step</b>])</code></pre>
|
|
|
|
- `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.
|
|
|
|
example: |
|
|
```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)
|
|
```
|
|
|
|
optargs:
|
|
start:
|
|
type: int
|
|
default: 0
|
|
description: The start of the range
|
|
|
|
stop:
|
|
type: int
|
|
description: The end of the range
|
|
|
|
step:
|
|
type: int
|
|
default: 1
|
|
description: The loop increment
|