Initializing values in associative arrays
Joseph Rushton Wakeling
joseph.wakeling at webdrake.net
Thu Nov 29 11:16:40 PST 2012
How safe is it to rely on doing something like this:
uint[size_t] x;
foreach(i; iota(0, 10))
x[i]++;
foreach(i; iota(5, 15))
x[i]++;
... ? In this case "correct" output comes out -- that is, values for keys 1-4
and 10-14 come out as 1, values for keys 5-9 come out as 2 -- but it seems a bit
shaky to assume that just incrementing x[i] without first checking ((i in x) !is
null) will come out correctly.
I note that the above works even if uint[size_t] is changed to real[size_t],
which is a surprise, because I'd have assumed that everything would come out as
nan's.
More information about the Digitalmars-d-learn
mailing list