qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

第十一章 变量名的力量

 

 变量名应该完全、准确地表示变量指代的事物。避免x xx xxx一类无意义变量名,避免dat tmp一类泛泛的变量名。

 长度:最佳为10~16个字符,8~20个字符也可以。

 变量名与作用域:

 短变量名,如i tmp常常用作临时变量。有些人因为短变量名有风险,所以建议即使临时变量也不要用短变量名。无论如何,短变量名“暗示”了局部作用域。

 全局变量名应该用限定词避免名字冲突,如cpp中的namespace,java中的package

 计算值限定词,如min max total average应该放在最末尾。这样可以突出重点属性。

同样注意对仗词。

 

 特定变量:

循环变量:常用i j k。但假如循环很长,i j k容易混淆,或变量离开循环后还会使用,建议取有意义的名字。

 状态变量:避免flag status这样的无意义名字。

 临时变量:要警惕。尽量少用temp这样的名字。

布尔值:常用名:done error found success ok…应该给布尔值取包含真/假两种状态的名字,如success,暗示了只有success和unsuccess两种状态。可以使用is开头的布尔值名字,如isFound。不要用否定意义的布尔值,如notFound。

 枚举类型:名字中应该暗示枚举类型本身的名字,如名为Color的枚举类型内部命名应为Color_Red, Color_Green等。不过对于一些枚举类型的使用很像类的语言,可以省略,如应该命名为Color.Red, Color.Green而非Color.Color_Red, Color.Color_Green。

 常量:应该根据常量的意义而非常量的值命名。

 

 在共享开发、代码可读性很重要、需要经常或长周期维护的情况下,命名规则非常重要。

  命名规则的正式程度应该依情况而定。

 一些可供参考命名规则:

区分类与变量:

首字母大写表示类,全部小写表示变量:常用于cpp, java。缺点:差别太小;有些语言大小写不敏感,不适用于混合语言开发。

 字母全部大写表示类,全部小写表示变量。缺点:cpp java中全部大写被表示常量;不适用于混合语言开发。

用t_前缀表示类型。优点:差别清晰;方法普适。缺点:不美观。

用a前缀表示变量。缺点:需要改变所有变量名,很麻烦。

 对变量采用更明确的名字。

  这里没有一个十全十美的方法。个人出于习惯偏爱第一种与第五种的结合。

 全局变量:用g_前缀标识。 成员变量:用m_前缀标识。

疑问:很多语言中成员变量直接用.运算符调用即可,为何要特殊标识?

具名常量:用c_前缀标识。

疑问:个人以为具名常量可以用明确的名称表示,加上前缀不美观、不直接。而且通常的编译器会检查是否对具名常量进行修改,不至于产生错误操作。

 枚举类型的元素:同上。

只读变量:该问题在java这样传引用的语言中尤为严重。在一些语言中可以用const保护变量,java这样的语言中可以用const前缀标识。

 格式化命名:统一采用一种格式化命名法,如下划线分割(c)、驼峰命名法(java)。

 

 与语言相关的命名规则:(在此只记录个人常用语言)

 c:c ch指字符,i j指整数下标,n指数量,p指指针,s指字符串,宏定义、typedef名字全部大写,变量名、子程序名全部小写,用下划线分割。

 cpp:i j指整数下标,p指指针,常量、typedef、宏定义全部大写,当且仅当全部大写时用下划线分割,类、变量采用驼峰命名法,类首字母大写,变量首字母小写。

 java:java的命名风格从一开始就规定了,借鉴了一些c cpp的成功经验。i j是整数下标,常量全部大写、用下划线分割,类(与接口)、变量名同cpp、采用驼峰命名法,访问器子程序用get和set前缀。

 混合语言编程时,应该使命名风格一致,即使会违背部分语言的惯例。

 

posted on   嘎嘎鸭1  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示