代码规范的方法有哪些

发布时间:2021-10-23 17:08:35 作者:iii
来源:亿速云 阅读:150

本篇内容介绍了“代码规范的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

代码规范

变量命名

这里我简单说一说规范问题。

「权威的C++规范以Google为主」,我给大家下载了一份中文版本,在公众号「代码随想录」后台回复:googlec++编程规范,就可以领取。

「具体的规范要以自己团队风格为主」,融入团队才是最重要的。

我先来说说变量的命名。

主流有如下三种变量规则:

小驼峰,第一个单词首字母小写,后面其他单词首字母大写。例如 int myAge;大驼峰法把第一个单词的首字母也大写了。例如:int MyAge;通常来讲  java和go都使用驼峰,C++的函数和结构体命名也是用大驼峰,「大家可以看到题解中我的C++代码风格就是小驼峰,因为leetcode上给出的默认函数的命名就是小驼峰,所以我入乡随俗」。

下划线命名法是名称中的每一个逻辑断点都用一个下划线来标记,例如:int  my_age,「下划线命名法是随着C语言的出现流行起来的,如果大家看过UNIX高级编程或者UNIX网络编程,就会发现大量使用这种命名方式」。

匈牙利命名法是:变量名 = 属性 + 类型 + 对象描述,例如:int  iMyAge,这种命名是一个来此匈牙利的程序员在微软内部推广起来,然后推广给了全世界的Windows开发人员。

这种命名方式在没有IDE的时代,可以很好的提醒开发人员遍历的意义,例如看到iMyAge,就知道它是一个int型的变量,而不用找它的定义,缺点是一旦该变量的属性,那么整个项目里这个变量名字都要改动,所以带来代码维护困难。

「目前IDE已经很发达了,都不用标记变量属性了,IDE就会帮我们识别了,所以基本没人用匈牙利命名法了」,虽然我不用IDE,VIM大法好。

我做了一下总结如图:

代码规范的方法有哪些


编程风格

水平留白(代码空格)经常看到有的同学的代码都堆在一起,看起来都费劲,或者是有的间隔有空格,有的没有空格,很不统一,有的同学甚至为了让代码精简,把所有空格都省略掉了。

大家如果注意我题解上的代码风格,我的空格都是有统一规范的。

「我所有题解的C++代码,都是严格按照Google C++编程规范来的,这样代码看起来就让人感觉清爽一些」。

我举一些例子:

操作符左右一定有空格,例如

i = i + 1;

分隔符(, 和;)前一位没有空格,后一位保持空格,例如:

int i, j; for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++)

花括号和函数保持同一行,并有一个空格例如:

while (n) {      n--; }

控制语句(while,if,for)前都有一个空格,例如:

while (n) {      if (k > 0) return 9;     n--; }

以下是我刚写的力扣283.移动零的代码,大家可以看一下整体风格,注意空格的细节!

class Solution { public:     void moveZeroes(vector<int>& nums) {         int slowIndex = 0;         for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {             if (nums[fastIndex] != 0) {                 nums[slowIndex++] = nums[fastIndex];             }         }         for (int i = slowIndex; i < nums.size(); i++) {             nums[i] = 0;         }     } };

当然我并不是说一定要按照Google的规范来,代码风格其实统一就行,没有严格的说谁对谁错。

“代码规范的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. PHP 代码规范
  2. Python 代码规范

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java php

上一篇:TransmittableThreadLocal怎么解决池化复用线程的传值问题

下一篇:绕过Linux/Unix命令别名的方法有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》