put string[] into a appender without loop?

monarch_dodra via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Sep 22 04:11:10 PDT 2014


On Sunday, 21 September 2014 at 23:50:50 UTC, H. S. Teoh via 
Digitalmars-d-learn wrote:
> On Sun, Sep 21, 2014 at 11:41:56PM +0000, AsmMan via 
> Digitalmars-d-learn wrote:
>> I'd like to copy an array string into a appender!string() but 
>> I can't
>> see how to do this without loop myself over the string array. 
>> Is there
>> a native function or should I write it myself?
>
> Try this:
>
> 	import std.array : appender;
> 	import std.algorithm : joiner, copy;
>
> 	string[] arr = ["ab", "cd", "efg"];
> 	auto app = appender!string();
> 	arr.joiner.copy(app);
> 	assert(app.data == "abcdefg");
>
>
> T

FYI, that's probably scary expensive in terms of 
encoding/decoding.

Using the "free" std.range.put should take care of everything, 
natively.


More information about the Digitalmars-d-learn mailing list