你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码
Posted mngmbear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码相关的知识,希望对你有一定的参考价值。
本篇文章适用语言:python,c++,Java.(其实我就是随便bb)
我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效率的关键,而且一个好的码风可以让自己读起来也赏心悦目.那么接下来我就会对这一部分进行讲解.
变量命名
我将码风分为两个部分,变量命名和代码书写.
变量命名当中,最最最最恶心的一点就是拿拼音来为变量命名,你拿x,y,z都好过.什么书本的数量用"shuben",你是小学没学过吗?我幼儿园都会"book".不仅打起来麻烦而且让人感觉你很low.要是让我看见还让我给他改代码我就一拳上去.
比如答案就用"ans"(answer),表示访问的不要用bj(标记),"flag","vis","visit"用着不香吗?拼音很容易让人不知道什么意思,常常过两天来看你自己都不知道.而用英文简写就很容易让人知道什么意思.这也就是代码编辑中的约定俗成.
再者,比如循环变量i,j,k,实在不行加一个l,乱七八糟的不要用.abcxyz等最好不要在太多地方使用,n,m都可以.
代码书写
使我们的代码变得清晰美观的只有一个键--空格.空格的使用使代码变得不那么拥挤.
比如在使用逗号的时候,可以将逗号后面留一个空格.其次,在"="前后也可以有空格,";"后面也允许用空格,"==","&&","||",">=","<="前后我都会加空格
比如在for语句里,我经常这么写:for(int i = 1; i <= n; i++).
但这不是强行要求,你可以在上面进行更改,只要你看着比较美观就好.
示范
随便copy一个同学的代码(来源:洛谷)
#include<bits/stdc++.h>
using namespace std;
int x,sum;
int cf(int a,int b){
int z=1;
for(int i=0;i<b;i++){
z*=a;
}
return z;
}
void digui(int n){
int y;
if(n==0) return;
for(int i=0;i<=15;i++){
y=i;//进行储存
if(cf(2,i)>n){
y--;
break;
}
}
if(y==0) cout<<"2(0)";
if(y==1) cout<<"2";
if(y>1){
cout<<"2(";
digui(y);
cout<<")";
}
if(n!=cf(2,y)){
cout<<"+";
digui(n-cf(2,y));
}
}
int main(){
cin>>x;
digui(x);
return 0;
}
其实这样我是不推荐的,下面是我更改码风过后的代码,当然,如果你使用Dev_C++d等编辑器进行阅读效果会更好:
#include <bits/stdc++.h>
using namespace std;
int x, sum;
int cf(int a, int b)
{
int z = 1;
for(int i = 0; i < b; i++)
z *= a;
return z;
}
void dg(int n)
{
int y;
if(n == 0)
return;
for(int i = 0; i <= 15; i++)
{
y = i;
if(cf(2, i) > n)
{
y--;
break;
}
}
if(y == 0)
cout<<"2(0)";
if(y == 1)
cout<<"2";
if(y > 1)
{
cout<<"2(";
dg(y);
cout<<")";
}
if(n != cf(2,y))
{
cout<<"+";
dg(n - cf(2, y));
}
}
int main()
{
cin>>x;
dg(x);
return 0;
}
现在我很无语,因为这家伙真tm用digui(递归)做函数名.
我当场吐血.
你用dg都好过digui.好吗?
写在最后
总之,这是我本人提的一些小建议,如果你喜欢我的码风的话,请支持一下本蒟蒻吧.(言外之意我想你不会不懂)
以上是关于你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码的主要内容,如果未能解决你的问题,请参考以下文章