4 - 缩进

4 - 缩进

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

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

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

4.1 行长

避免超过80个字符的行,由于不少终端和工具不能很好的处理它们。函数

Note: 注释中使用的示例应该具备较短的行长, 通常不超过 70个字符

4.2 换行规则

当一个表达式不适合单独一行时,根据如下通常原则将它分解:工具

  • 逗号以后
  • 操做符前面
  • 优选在高级别的运算后面换行
  • 将新行与上一行中相同级别的表达式的开头对齐。好比()[]
  • 若是上述规则致使代码混淆或超过右边的边界,则只需缩进8个空格便可。

参考案例:code

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

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

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

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

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

//常规换行 括号对齐
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个空格会让表达式的内部的代码很不容易区分,例如:class

// 不要使用这种缩进
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;
相关文章
相关标签/搜索