On Saturday, 13 June 2015 at 12:02:10 UTC, kerdemdemir wrote:

The problem is that your appender is a char appender, and you try to put a dstring into it. Replace :

charAppender.put(totalStr);

by :

foreach(elem; totalStr){
  charAppender.put(elem);
}

elem will be a dchar, so it will work.


But I can see in the example of array.appander(http://dlang.org/phobos/std_array.html#appender)

int[] a = [ 1, 2 ];
auto app2 = appender(a);
app2.put(3);
app2.put([ 4, 5, 6 ]);  ---> appender accepts another array.

Why this is not same with dchar ?

It is the same, but totalStr is not a dchar[]. It's a Result (a type internal to the chain function ) which is a range. The foreach loop iterates over Result, which returns dchar[].

So if you try to do something like that :

charAppender.put(totalStr.array), it won't work because totalStr.array is a dchar[][].

Reply via email to