[Style] Converting from char[] to string, to!string vs idup
Justin Whear
justin at economicmodeling.com
Tue Mar 25 14:42:52 PDT 2014
On Tue, 25 Mar 2014 21:35:46 +0000, Mark Isaacson wrote:
> I am presently working my way through TDPL for the second time, and
> there's an example in chapter 1 to the effect of:
>
> [code]
> string currentParagraph;
> foreach(line; stdin.byLine()) {
> if (line.length > 2) {
> currentParagraph = to!string(line[2 .. $]);
> }
> }
> [/code]
>
> The explicit conversion is necessary because `line` is a `char[]`
> but `currentParagraph` is a `string`. My question is why use `to!string`
> instead of just doing `line[2 .. $].idup`?
>
> Is there a performance benefit? Is it simply because it's more general?
>
> I tried taking a peek at the implementation of to!string, but it wasn't
> easy enough to follow and boil down into components.
I believe char[] -> string conversion with to! will use this
implementation: https://github.com/D-Programming-Language/phobos/blob/
master/std/conv.d#L823
So there should be no performance implications, but to!string is better
self-documenting and flexible should you need to change the input type in
future.
More information about the Digitalmars-d-learn
mailing list