how to skip the next (n) item & continue from (n+1) with a range ? e.g. in File(fn).byLine();

mw mingwu at gmail.com
Mon Jun 22 20:46:30 UTC 2020


On Monday, 22 June 2020 at 20:00:50 UTC, Steven Schveighoffer 
wrote:
> I wouldn't recommend it, instead do a while loop:
>
> auto range = File(fn).byLine;
>
> while(!range.empty)
> {
>    auto line = range.front;
>    if(someCond(line)) {
>         range.popFrontN(n);
>    } else {
>         regularProcess(line);
>         range.popFront;
>    }
> }

Thanks.

so `front` is peek, and `popFront` is the pop action whose return 
type is `void`, why we need two *separate* calls instead of just 
let `popFront` return T (or do we have another function for 
this)? i.e if the user forget `popFront`, it will prone to 
infinite loop bug?



More information about the Digitalmars-d-learn mailing list