| 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 |