Array Copying syntax

Antonio Corbi via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Sep 16 11:03:10 PDT 2016


On Friday, 16 September 2016 at 17:55:59 UTC, Jonathan M Davis 
wrote:
> On Friday, September 16, 2016 17:22:41 Antonio Corbi via 
> Digitalmars-d-learn wrote:
>> Shouldn't it be mentioned then in the docs that this works for 
>> statically sized arrays and that in that case it copies 
>> contents?
>
> Well, I confess that I don't know why you would ever have 
> thought that
>
> s = t;
>
> wouldn't work. The only mutable types that can't be assigned to 
> like this are the ones that have disabled assignment or copying 
> (which would only be certain structs).
>
> And I thought that the spec made it clear that static arrays 
> were value types, in which case the behavior of
>
> s = t;
>
> should be obvious. So, I would have thought that it would be 
> clear enough as-is, but clearly, it wasn't for you. So, I don't 
> know. We do want the spec to be clear, but it would also be bad 
> to add a bunch of redundant information in an attempt to be 
> clearer. I'd have to go digging through the spec though to give 
> any concrete suggestions on how to improve this though.
>
> - Jonathan M Davis

Hi Jonathan!

Probably this entry in https://dlang.org/spec/arrays.html#usage 
confused me a bit.

int[3] s;
...
s = ...;   // error, since s is a compiled in static
            // reference to an array.

Thanks for your help!
Antonio


More information about the Digitalmars-d-learn mailing list