Stuck with std.algorithm.splitter

Aleksandar Ružičić ruzicic.aleksandar at gmail.com
Sun Apr 3 17:37:52 PDT 2011


On Mon, Apr 4, 2011 at 2:30 AM, Jonathan M Davis <jmdavisProg at gmx.com> wrote:
> On 2011-04-03 17:19, Aleksandar Ružičić wrote:
>> I definitely must sit down and read about ranges, as it seems I don't
>> quite get what exactly they are (and what types of ranges exists and
>> the difference between them)..
>>
>> > auto parts = array(splitter(input, '|'));
>>
>> That's a nice solution! I wasn't aware of array() though..
>> But I would like to avoid coping the data in this situation (I'm just
>> interested in reading first one or two elements) so I'll be using
>> explode() function I posted in previous email.
>
> So, do
>
> auto parts = splitter(input, '|');
> auto first = parts.front;
> parts.popFront();
> auto second = parts.front;
>
> Now, I don't think that array is doing much of the way of copying anyway,
> since the result is an array of strings, and arrays are effectively reference
> types (so it's not like the whole string is getting copied), but if all you
> want to do is take the first couple of elements, then use the proper range
> functions for it. front accesses the first element of a range, and popFront
> removes the first element from the range.
>
> If you want to read about ranges, the original article is here:
> http://www.informit.com/articles/printerfriendly.aspx?p=1407357
>
> It's not really D-specific though. I am currently work on an article on ranges
> in D (which I guess falls under Walter's article contest, though I started it
> before his announcement), but I don't know when it will be done (well before
> the contest's deadline of June 1st, but I don't know how soon), so maybe that
> will help you when that's done. In the meantime, the original article should
> give you a good, basic understanding of ranges, and if you look at the
> documentation for std.range and std.algorithm, hopefully that will help better
> understand how they're used.
>
> - Jonathan M Davis
>

Thank you. I've bookmarked the link and will read it in the morning!
And I'll be waiting for your article too (although I hope Andrei's
should help me understand the ranges enough to be able to use them).


More information about the Digitalmars-d-learn mailing list