`
tomqyp
  • 浏览: 25691 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

笔记 关于D关联数组可能遇到的一个陷阱

阅读更多

关于D关联数组可能遇到的一个陷阱
 
前两天想当然的写了类似如下代码:
int[X] n;
n[x] = n.length;
按C的计算顺序此时n[x]的值应该是n的长度。
 
可是在D中,如果x不存在于n中,此时n的长度为n.length+1,即在先在n中插入一个新对象,再设置对象的值。
在D还没有用的很顺手的调试器的情况下,写出这样的代码仅靠单元测试很难找出bug的位置的,所以应该注意避免写出这样的代码。
分享到:
评论
3 楼 lifc 2010-02-08  
有点push sp和i=i++的味道,不久之前刚犯过一个类似的错误:保存线程上下文做迁移时push esp,认为存入的是改变之前的数值(对8086的印象太深了),后来用qemu虚拟机调试才发现问题:)
2 楼 tomqyp 2010-01-31  
以前都是存在电脑上,后来一想放在圈子里也许还能方便别人就干脆贴上来了
1 楼 hqs7636 2010-01-30  
不错,谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics