变量的命名1
来源:互联网 发布:ticctv网络监控测试仪 编辑:程序博客网 时间:2024/05/17 22:03
为变量命名时,最重要的考虑事项是,该名字要完全,准确地描述出该变量所代表的事物。
最适当的名字长度
研究发现,当变量名的平均长度在10到16个字符的时候,调试程序所花费的气力是最小的。这项原则并不意味着你应该尽量控制变量长度,它强调的是,如何你检查自己写的代码是发现了很多更短的名字,那么你需要认真检查,确保这些名字含义足够清晰。
变量名中的计算值限定词
很多程序都有表示计算结果的变量:总额,平均值,最大值,等等。如果你要用类似于Total,Sum,Average,Max,Min,Record,String,Pointer这样的限定词来修改某个名字,那么请记住把限定词加到名字的后面,如studentTotal,salaryAverage。这样一来,名字中最重要的部分就会位于名字的前部而变得更突出。
但这条规则也有例外,如Num放在变量名的开始位置代表一个总数:如numCustomers 表示员工的总数,Num放在变量名的结束位置代表一个下表:customerNum 表示当前员工的序号。然而,由于这样使用Num常常会带来麻烦,因此最好的办法是避开这些问题,用Count或Total代表总数,用Index代表某个特定的员工。
变量名中的对仗词
begin/end first/last locked/unlocked min/max next/previous old/new opened/closed visible/invisible source/target up/down
为循环下标命名
在循环中,i,j,k,这些名字都是约定俗称的。
for ( i = firstItem; i < lastItem; i++ ){ data[i] = 0;}
如果循环不是只有几行,那么读者会很容易忘记 i 本来的含义,因此你最好给循环下标换一个更有意义的名字。
for ( teamIndex = 0; teamIndex < teamCount; teamIndex++ ){ for ( eventIndex = 0; eventIndex < eventCount[ teamIndex ]; eventIndex++ ){ score[ teamIndex ][ eventIndex ] = 0; }}如果你一定要用i,j,k,那么不要把它们用于简单循环的循环下标之外的任何场合——这种传统已经太深入人心了,一旦违背该原则,将这些变量用于其他用途就可能造成误解。
为状态命名
为状态变量取一个比flag更好的名字。标记的名字中不应该含有flag,因为你从中丝毫看不出该标记是做什么的。为了清楚起见,标记应该用枚举类型,具名常量,或用作具名常量的全局变量来对其赋值,而且其值应该与上面这些量做比较。如statusFlag就不懂其意,但是fileReady就很清楚。
为临时变量命名
临时变量用于存储计算的中间结果,作为临时占位符,以及存储内务管理值。它们常被赋予temp,x 或是其它一些模糊且缺乏描述性的名字。通常,临时变量是个信号,表明程序员还没有完全把问题弄清楚。而且,由于这个变量被正式地赋予了一种临时的状态,因此程序员会倾向于比其他变量更为随意地对待这些变量,从而增加了出错的可能。
为布尔变量命名
谨记典型的布尔变量名
- done 可用于表示循环结束或者一些其他的操作已完成。在事情完成之前把done设为false,在事情完成之后设为true。
- error 在错误发生前把变量值设为false,在错误已经发生时设为true。
- found 在没有找到该值的时候设为false,一旦找到就设为true。
- success 或 ok 用来表明一项操作是否成功。如果可以,请用一个更具体的名字代替success,以便更具体地描述成功的含义。
给布尔变量赋予隐含 真/假 含义的名字。像done和success就很不错,而status和sourcefile却很糟糕。
为枚举类型命名
在使用枚举类型时,可以通过使用组前缀,如Color_,Plant_,Month_ 来明确表示该类型的成员都同属一个组。
Public Enum Color color_Red Color_Green Color_BlueEnd Enum
- 变量的命名1
- 变量的命名约定
- 变量的命名
- C#变量的命名
- 变量的命名
- 变量的命名法
- 变量的命名方式
- 已命名的变量
- 变量命名的重要性
- 未命名的变量
- 变量的命名
- 变量的命名2
- JDE 变量的命名!
- 变量的命名规则
- 变量的命名规则
- 类成员变量的命名
- C#变量的命名规范
- 变量命名的一些事项
- 卷积神经网络(CNN)新手指南
- Python requests爬虫实例
- CRC校验算法原理分析
- 比特币源码学习笔记(三)
- windows数据导入到hive表
- 变量的命名1
- Firefox+Selenium IDE
- APICloud开发指南之$api
- thinking in java 阅读笔记 第二章 一切都是对象
- 下载文件,并弹出保存提示框,选择位置,绝对路径 or相对路径
- error: could not install *smartsocket* listener: cannot create socket: 鏃犳硶鍔犺浇鎴栧垵濮嬪寲璇锋眰鐨勬湇鍔*彁渚涚* 搴忋€?
- 一文搞懂HMM
- iOS TestFlight 使用说明
- 002-Redis五种数据类型-设置key的过期时间