天天看点

编码基本功:类成员要加前缀,这样可以避免同名变量

  昨日改了代码进行测试,发现宽度不对。难道是我代码错了?于是把开关关掉,使用老代码,还是不对。怎么办?回滚吧。为什么吾对测试工作极度不满?这就是例子。

  运气不错,通过二分法定位,发现是一个多月前代码有问题。吾当时就奇怪了:吾这一段时间是清理垃圾代码、注释,怎么也出错了?出错代码如下:

float width = obj != null ? obj.getWidth() : 0;
        width += this.width;      

  当时提供width定义了未使用,吾就将第一句删除。没注意第二句没出错!第二句为什么没出错?直接赋值给了类成员!所以教训是:不要定义与类成员相同的变量。

  有人说了,可是这种变量是常见的名啊。没错,问题出在类成员上,类成员应该加个前缀,比如mWidth。如果变量也这样命名,显然是故意出错的。

继续阅读