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;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。