首页 > 其他分享 >08代码大全2阅读笔记

08代码大全2阅读笔记

时间:2023-06-02 20:44:54浏览次数:35  
标签:java 变量 Color 前缀 08 笔记 命名 变量名 大全

第十一章 变量名的力量

 

 变量名应该完全、准确地表示变量指代的事物。避免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前缀。

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

 

标签:java,变量,Color,前缀,08,笔记,命名,变量名,大全
From: https://www.cnblogs.com/qwb0614/p/17452865.html

相关文章

  • 数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第10章参考数据和主数据篇
    大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。在最近的两年的时间里,因为公司的需求,还有大数据的发展趋势所在,我开始学习数据治理的相关知识。数据治理需要进行系统的学习才能真正掌握,也需要进行专业的考试认证才能证明自己在数据治理......
  • 最新SQL手工注入语句&SQL注入大全
    最新SQL手工注入语句&SQL注入大全 (转载)看看下面的1.判断是否有注入;and1=1;and1=22.初步判断是否是mssql;anduser>03.判断数据库系统;and(selectcount(*)fromsysobjects)>0mssql;and(selectcount(*)frommsysobjects)>0access4.注入参数是字符'and[查询条件]an......
  • stm32笔记[7]-串口多字节收发
    主要功能使用AliosThingsDevkit开发板实现串口多字节收发,使用内部RTC时钟和AD转换.硬件平台开发板:AliosThingsDevkit芯片:stm32l496vgt6系统时钟:80MHzLED1:PB6(低电平有效)LED2:PE3(低电平有效)LED3:PD15(低电平有效)STLK_TX:PB10(LPUART1)STLK_RX:PB11(LPUA......
  • 学习笔记——软件、软件分类、软件测试、数据的形式与数制(进制之间的转化)
    2023-06-02一、软件1、软件包含的内容:程序、数据和文档①程序:一遍是由编程语言编写的,例如:C、C++、java、Python等。②数据:一般使用文件或者数据库来存储数据③文档:包括安装说明书、帮助文档、许可协议等。 2、软件分类2.1安装功能用途分类(1)系统软件例如:操作系统:Unix、W......
  • bzoj 1007: [HNOI2008]水平可见直线(模拟栈)
    http://www.lydsy.com/JudgeOnline/problem.php?id=10071007:[HNOI2008]水平可见直线TimeLimit: 1Sec  MemoryLimit: 162MBSubmit: 7644  Solved: 2922[Submit][Status][Discuss]Description在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往......
  • 动态规划基础之矩阵取数问题 51nod1083
    题目地址:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1083题目:1083 矩阵取数问题基准时间限制:1 秒空间限制:131072 KB分值: 5 难度:1级算法题例如:3*3的方格。133213221......
  • 三个博弈-巴什博奕、威佐夫博弈、尼姆博弈。acm博弈算法笔记HDU 2149,1850,1527
    博弈论(一)、acm博弈基础算法BashGame,NimGame和WythoffGame(即巴什博奕、尼姆博弈、威佐夫博弈)Bash  Game: 同余理论Nim   Game: 异或理论WythoffGame: 黄金分割(二)、三个博弈。1、巴什博奕。只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,......
  • 循环神经网络 RNN LSTM GRU 笔记
    文章目录1.神经网络基础2.RNN循环神经网络2.1背景与概念2.2RNN基本方法2.3拓展3.LSTM3.1概念3.2LSTM基本方法3.3原理解释4.GRU4.1概念与背景4.2GRU基本方法1.神经网络基础上图是一个简单的全连接神经网络结构,每一条连接线上都有一个权重,蕴含着网络学得的“能力”。......
  • opencv 读取图片 图片数据处理 笔记
    1.python中各类图片读取工具的比较参考Python各类图像库的图片读写方式总结可知,opencv的性能表现最好。opencvyyds相关文章收藏:Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()Python各类图像库的图片读写方式总结2.opencv常用函数2.1读取图片cv2.imread(filename,fla......
  • [极客大挑战 2019]EasySQL1 做题笔记
     看标题是EasySQL,简单SQL注入,想来不会特别难先尝试输入admin123456发现账号和密码都错误那就尝试传说中的万能密码 1'or'1'='1'# 输入的时候记得切换为英文输入法 出现flag......