On Sunday, 16 March 2014 at 18:06:00 UTC, Vladimir Panteleev
wrote:
On Sunday, 16 March 2014 at 16:58:36 UTC, Andrei Alexandrescu
wrote:
A classic idiom for reading lines and keeping them is
f.byLine.map!(x => x.idup) to get strings instead of the
buffer etc.
The current behavior trips new users on occasion, and the
idiom solving it is very frequent. So what the heck - let's
put that in a function, expose and document it nicely, and
call it a day.
A good name would help a lot. Let's paint that bikeshed!
For the record, if you want to keep all lines in memory anyway,
it's more efficient to just read the whole file at once then
split it with splitLines(), because you avoid doing one memory
allocation per line. The downside is if you want to keep only
some of the lines on the heap in a long-running program - with
this approach, the slices pin the entire file content.
Reading all at once is also a problem for really big files.