concatenation

Robert Clipsham robert at octarineparrot.com
Mon Jan 24 15:22:12 PST 2011


On 24/01/11 23:09, Ellery Newcomer wrote:
> in the following:
>
> void main(){
> char[] x;
> string s;
> string y;
>
> y = s ~ x;
> }
>
> tok.d(5): Error: cannot implicitly convert expression
> (cast(const(char)[])s ~ x) of type char[] to string
>
> why should typeof(s ~ x) == char[] ?

x is a mutable array of mutable chars
s is a mutable array of immutable chars

If you append something mutable to something immutable, the resulting 
type must be mutable, as some of the contents is mutable and could be 
changed - if that can happen the result can't be immutable. To get 
around this there's .idup I believe.

-- 
Robert
http://octarineparrot.com/


More information about the Digitalmars-d-learn mailing list