变量起名-程序员内功-如何为特定类型的变量命名
上一篇变量名的注意事项中,我们给出了一些变量起名的注意事项,下面我们再给出一些特定类型的变量的一些命名规则,为大家提供一些参考。
循环下标
对于常见的情况,命名为i,j,k都是大家约定俗成的,也就不多说了。
如果要在循环外使用该变量,那么就一定要命名成更有意义的名字,比如要累加一个数字列表的总数,xxxSum也许就可以:
xxxSum = 0;for (i = 0; i < xxxArray.length; i++){balabalaba…xxxSum += xxxArray[i];}
如果不是简单的循环,比如循环嵌套,最好就别再用ijk来命名了,因为那样可能会导致很多问题,一方面阅读者理解起来会有障碍,另一方面还可能会不经意间写错/写反,最后调试起来非常麻烦。比如处理表示表格的二维数组,用table[colIndex][rowIndex],就比table[i][j]更好理解。
临时变量
临时变量常用来存储处理过程的一些中间结果,经常会被起名为temp,a,b,c之类的毫无意义的名字。实际上,我们函数的大部分变量都是临时变量,但是大部分变量都会被我们认真地对待,起个好名字;只是还有一些我们没搞清该起个什么名字时,才会出现temp之类比较随意的名字。这个时候,我们应该研究为什么这个变量难以命名,是不是设计上出现了什么问题,或者一些其他原因,而不是直接地随意命名。
并且,当一个变量被这样命名以后,我们对待它也会变得十分随意,这大大提高了出错的概率。治大程序若烹小鲜,很多时候bug就藏在这些细节里面。
所以,对于临时变量,建议不要用这种变量,不用就不存在起名的问题了!
状态/标志变量
这类变量表达我们的程序当前状态,最常见的变量名可能就是flag了。
但是,起名为flag的标记根本不知道是干啥的,即使起名前面加点前缀,比如finishFlag,我们猜测它可能是表示结束状态的,但起名为finish都比后面加个flag更好,因为finish可以表达变量为true时,说明已找到,而finishFlag则什么都表达不了。下面就是一些错误示范:
if(flag)if(finishFlag)…
对于被标志变量,更好的处理方式是用常量/枚举来命名对应的各个值,然后用这些值去比较(也就是拒绝魔法值),变量名也应该尽量贴近它要表示的内容,比如:
if(finish)if(canPrint)…
无论什么时候,只要我们需要去猜一段代码或者一个变量表达的是什么的时候,都该重构这段代码,不要害怕修改,毕竟代码是写给人看的,重写花费的代价,远远比下次维护还需要再猜,然后猜错导致问题的代价更低。
布尔变量
很多布尔值用来做标志变量,所以,上一条的也在这里通用。
当然,由于布尔值得特殊性,它还有一些其他的命名规则。
首先,应该采用常见的命名,比如success,found,ready等等。
另外,布尔变量的名字应该是确定的,比如found,它的含义就是已经找到了,没有歧义,但是isFound呢?到底是找到了还是没找到?你是在问程序,还是在难为你自己?还有一些不是反问类型的,比如status,这个名字也常常被用在布尔值上,但它什么都不能表达,只能告诉你这是一个状态变量,他的true和false代表的意义完全搞不清,也许只有作者当时清楚了(过阵子有可能作者也忘掉了…)。
最后一个,不要在变量前面加否定词,这样容易把自己绕进去的。比如变量名为not_found,代码这样写:
if not not_found: balabala
这作者可能在写绕口令吧,那是不是还能写一个not_not_found呢?总之,命名要尽量简单明了,让人看一眼就明白是什么,方便他人,更方便自己。毕竟,大部分时候我们写的代码维护者还会是我们自己,给自己留条后路吧。
常量
常量命名要能表达该常量代表的是什么,比如
PRINT_READY = 0X2F
不要用有迷惑性的名字,或者只是简单的将值翻译一下,比如:
PRINT_STATUS1 = 0X2FSIXSIXSIX = 666
今天就写到这里了,欢迎大家点赞关注!
- · 北京起名大师李宗翰(《锦心似玉》几位长辈年轻时都是美女,徐令宜两位丈母娘都比他小)
- · 西安孩子起名(西安风水大师严峻师傅分享:怎么运用汉字修辞手法给孩子起名)
- · 网上起名可信吗(新手父母起名难,大师出手数百元起步是否靠谱?)
- · 起名 骗局(奶奶为给宝宝起个好名字 轻信网上“起名大师”被骗500多元)
- · 起名改名大师(同样是起名大师王道子和颜廷利谁更厉害?)
- · 洛阳起名大师(河洛工匠崔红涛:传承“新安窑”千年窑火,展现黄河文化新安魅力)
- · 梦见自己拉屎-起名网(梦见拉屎 - 周公解梦大师 梦境解释:梦到拉屎)
- · 保定起名大师(保定的由来,跟战事有关)
- · 最好的起名大师(起名大师排名谁第一:起名大师王道子如何影响我们的命名文化)
- · 宝宝起名取名大师(中国最好的起名大师——林大师)