推薦使用4個空格作爲縮進單位。
關於使用空格
或者tab
並無決定性的要求。tab
須要設置爲8個空格而不是4個。java
Q: 換行、 縮進 區別
A: 代碼嵌套、內部須要縮進。好比方法的實現和if的內部,以下:
if (boolenArg) { doSomething(); //這叫縮進 4個空格 } var longName1 = longName2 + longName3 + longName4 + longName5 + longName6; //這叫換行 太長了換了第二行
避免超過80
個字符的行,由於不少終端和工具不能很好的處理它們。函數
Note: 註釋中使用的示例應該具備較短的行長, 通常不超過
70
個字符
當一個表達式不適合單獨一行時,根據如下通常原則將它分解:工具
(
、)
、[
、]
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;