On 12/12/22 12:23 PM, lili wrote:
```
int[string] aa = ["ok":1, "aaa":2, "ccc":3, "ddd":4];
foreach (k ; aa.byKey)
{
if (k == "aaa") {
aa.remove(k);
aa["ww"] = 33;
}
if (k == "ww") {
aa.remove(k);
aa["vv"] = 33;
}
}
writeln(aa); // output ["ok":1, "ddd":4, "vv":33, "ccc":3] is ok
```
Removing keys while iterating is not supported. It will break, in
confusing ways, and possibly include a null pointer dereference.
Instead, either iterate over `aa.keys`, which makes a copy of the keys
into an array, store the keys to remove for later processing, or
construct a new AA with the indicated keys removed.
-Steve