Working with ranges
Elmar
chrehme at gmx.de
Wed May 26 13:58:56 UTC 2021
On Saturday, 8 December 2018 at 03:51:02 UTC, Adam D. Ruppe wrote:
> On Saturday, 8 December 2018 at 03:48:10 UTC, Murilo wrote:
>>> Try passing `ps[]` to the function instead of plain `ps` and
>>> see what happens.
>>
>> How do I transform an array into a range?
>
> With the slicing operator, [].
That's amazing, this should be one thing that should appear in
every tutorial just right at the start! I was looking hours for a
way to generate an "iterator" (a range) from a fixed-size array
which doesn't copy the elements (unless elements are
deleted/added).
But my issue now is, I have strided arrays (or just any Result
range) and I want to use the slicing operator `[]` with that
range to copy it into a fixed-size array or apply element-wise
operations on it. How can I do that?
This example will not compile:
```
auto starts = arr[0..$].stride(2);
auto ends = arr[1..$].stride(2);
randomNumbers[] = ends[] - starts[];
```
Because `[]` is not defined for the Result range. Is there a
standard wrapper function which wraps an elementwise `[]`
operator implementation around a range?
More information about the Digitalmars-d-learn
mailing list