Array Concatenate
Jonathan M Davis
jmdavisProg at gmx.com
Fri Jun 8 08:36:55 PDT 2012
On Friday, June 08, 2012 14:41:10 Paul wrote:
> If this works...
>
> D programming book section 4.1.9 Expanding
> auto a = [87, 40, 10];
> a ~= 42;
> assert(a== [87, 40, 10, 42]);
That compiles just fine.
> why doesnt' this work?
>
> DeletedBlks ~= matchOld[0];
>
> the dmd compiler comes back with
> Error: cannot append type string to type string[ulong]
>
> Does this append operator only work for literals?
You didn't give us the types of either DeletedBlks or matchOld[0]. However,
from the error, it looks like DeletedBlks is a string[ulong], and matchOld[0]
is a string. string[ulong] is an associate array - which means that it's a
hash table - and appending doesn't make any sense with an associative array,
because AAs aren't ordered. They take key-value pairs. So, something like
DeletedBlks[42] = matchOld[0];
should compile - which creates the key-value pair of 42 and the value of
matchOld[0].
Section 4.4 of TDPL discusses associative arrays (which you obviously aren't
far from, since you're referring to section 4.1.9). So, read that section, and
things should be clearer.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list