资讯专栏INFORMATION COLUMN

4 - 缩进

UsherChen / 1291人阅读

摘要:缩进推荐使用个空格做为缩进单位。换行缩进区别代码嵌套内部需要缩进。比如如果上述规则导致代码混淆或超过右边的边界,则只需缩进个空格即可。优选操作符前面避免下面是个缩进方法声明的示例。

4 - 缩进

推荐使用4个空格做为缩进单位。
关于使用空格或者tab并没有决定性的要求。tab需要设置为8个空格而不是4个。

Q:  换行缩进 区别  
A: 代码嵌套、内部需要缩进。比如方法的实现和if的内部,如下:
if (boolenArg) {
    doSomething(); //这叫缩进 4个空格
}

var longName1 = longName2 + longName3 + longName4 + longName5
               + longName6;  //这叫换行 太长了换了第二行
4.1 行长

避免超过80个字符的行,因为很多终端和工具不能很好的处理它们。

Note: 注释中使用的示例应该具有较短的行长, 一般不超过70个字符
4.2 换行规则

当一个表达式不适合多带带一行时,根据以下一般原则将它分解:

逗号之后

操作符前面

优选在高级别的运算后面换行

将新行与上一行中相同级别的表达式的开头对齐。比如()[]

如果上述规则导致代码混淆或超过右边的边界,则只需缩进8个空格即可。

参考案例:

someMethod(longExpression1, longExpression2, longExpression3,
        longExpression4, longExpression5); // 逗号后面  8个空格
        
var = someMethod1(longExpression1,
                someMethod2(longExpression2,
                        longExpiression3)); // 16个空格,因为是方法内部的函数

下面是2个算术运算的换行例子。第一个是优选的,因为它换行是在高级别的运算外面。

longName1 = longName2 * (longName3 + longName4 - longName5)
           + 4 * longName6; //优选 操作符前面

longName1 = longName2 * (longName3 + longName4
                      - longName5) + 4 * longName6; //避免

下面是2个缩进方法声明的示例。第一个是常规换行。第二个例子中如果按照常规换行会太
紧贴右边,所以只前置了8个空格。

//常规换行 括号对齐
someMethod(int anArg, Object anotherArg, String yetAnotherArg,
           Object andStillAnother) {
    //do something               
}

// 缩进8个空格 避免很长的缩进.
// 这种情况,如果也使用括号对齐的话,右边都没办法写代码了
private static synchronized horkingLongMethodName (int anArg,
        Object anotherArg, String yetAnotherArg,
        Object andStillAnother) {
    // do something            
}

if 表达式的换行应该使用8个空格,因为4个空格会让表达式的内部的代码很不容易区分,例如:

// 不要使用这种缩进
if ((condition1 && condition2)
    || (condition3 && condition4)
    ||!(condition5 && condition6)) { //错误写法
    doSomethingAboutIt();        // 这行很容易被忽略
}

// 推荐使用
if ((condition1 && condition2)
        || (condition3 && condition4)
        ||!(condition5 && condition6)) {
    doSomethingAboutIt();            
}

// 或者使用
if ((condition1 && condition2) || (condition3 && condition4)
        ||!(condition5 && condition6)) {
    doSomethingAboutIt();            
}

以下是三种可接受的方式来设置三元表达式的格式:

alpha = (aLongBooleanExpression) ? beta : gamma;

alpha = (aLongBooleanExpression) ? beta
                                 : gamma;

alpha = (aLongBooleanExpression)
        ? beta
        : gamma;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69405.html

相关文章

  • Python入门-第一章Python基础

    摘要:例后的为比特值表示为真代码的缩进量缩进等级不同会导致代码语义的改变,语言要求的是同一代码块的每一行代码必须具有相同的缩进量。例后的为比特值表示为真我以刚才的代码为基础,不规范缩进后运行,会出现上图相应的错误提示。  hello,程序猿们,我是挪威森林的水手,从此篇文章开始,我将和大家一起从0...

    shiguibiao 评论0 收藏0
  • Vim入门级基础配置

    摘要:介绍配置文件,配置显示行号支持中文不乱码突出显示当前行,设置高亮显示括号匹配和缩进,解决粘贴时多出缩进和空格问题。为了方便使用,基本的配置选项一般都会包括支持中文不乱码设置编码与编码有关的变量包括。 介绍Vim配置文件.vimrc,配置Vim显示行号、支持utf8中文不乱码、突出显示Vim当前行,设置高亮显示括号匹配和tab缩进,解决Vim粘贴时多出缩进和空格问题。 一、Vim配置文件...

    Big_fat_cat 评论0 收藏0
  • 编写可维护的javascript

    摘要:为什么要编写可维护的软件生命周期的成本消耗在了维护上。相等具有强制类型转换的机制。检测字符串检测数字检测布尔值检测检测引用值引用值也称为对象,检测某个引用值的类型的官方最好的方法是使用运算符。 为什么要编写可维护的javascript? 软件生命周期80%的成本消耗在了维护上。 几乎所有的软件维护者都不是它的最初作者。 编码规范提高了软件的可读性,它让工程师能够快速且充分地理解新的代...

    singerye 评论0 收藏0
  • 编写可维护的javascript

    摘要:为什么要编写可维护的软件生命周期的成本消耗在了维护上。相等具有强制类型转换的机制。检测字符串检测数字检测布尔值检测检测引用值引用值也称为对象,检测某个引用值的类型的官方最好的方法是使用运算符。 为什么要编写可维护的javascript? 软件生命周期80%的成本消耗在了维护上。 几乎所有的软件维护者都不是它的最初作者。 编码规范提高了软件的可读性,它让工程师能够快速且充分地理解新的代...

    weknow619 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<