关于D关联数组可能遇到的一个陷阱
前两天想当然的写了类似如下代码:
int[X] n;
n[x] = n.length;
按C的计算顺序此时n[x]的值应该是n的长度。
可是在D中,如果x不存在于n中,此时n的长度为n.length+1,即在先在n中插入一个新对象,再设置对象的值。
在D还没有用的很顺手的调试器的情况下,写出这样的代码仅靠单元测试很难找出bug的位置的,所以应该注意避免写出这样的代码。