1. 【強制】大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行;如果是非空代碼塊則:
* 左大括號前不換行
* 左大括號后換行
* 右大括號前換行
* 右大括號后還有 else 等代碼則不換行;表示終止右大括號后必須換行
2. 【強制】 左括號和后一個字符之間不出現空格;同樣,右括號和前一個字符之間也不出現空格。
3. 【強制】if/for/while/switch/do 等保留字與左右括號之間都必須加空格。
4. 【強制】任何運算符左右必須加一個空格。
~~~
說明:運算符包括賦值運算符=、邏輯運算符&&、加減乘除符號、三目運行符等
~~~
5. 【強制】縮進采用 4 個空格,禁止使用 tab 字符。
~~~
說明:如果使用 tab 縮進,必須設置 1 個 tab 為 4 個空格。IDEA 設置 tab 為 4 個空格時,
請勿勾選 Use tab character;而在 eclipse 中,必須勾選 insert spaces for tabs。
~~~
~~~
正例: (涉及前面5點)
function method() {
// 縮進 4 個空格
let say = "hello";
// 運算符的左右必須有一個空格
int flag = 0;
// 關鍵詞 if 與括號之間必須有一個空格,括號內的 f 與左括號,0 與右括號不需要空格
if (flag == 0) {
console.info(say);
}
// 左大括號前加空格且不換行;左大括號后換行
if (flag == 1) {
console.info("world");
// 右大括號前換行,右大括號后有 else,不用換行
} else {
console.info("ok");
// 在右大括號后直接結束,則必須換行
}
}
~~~
6. 【強制】單行字符數限制不超過 120 個,超出需要換行,換行時遵循如下原則:
* 第二行相對第一行縮進 4 個空格,從第三行開始,不再繼續縮進,參考示例。
* 運算符與下文一起換行。
* 方法調用的點符號與下文一起換行。
* 在多個參數超長,逗號后進行換行。
* 在括號前不要換行,見反例。
~~~
正例:
StringBuffer sb = new StringBuffer();
//超過 120 個字符的情況下,換行縮進 4 個空格,并且方法前的點符號一起換行
sb.append("zi").append("xin")...
.append("huang")...
.append("huang")...
.append("huang");
反例:
StringBuffer sb = new StringBuffer();
//超過 120 個字符的情況下,不要在括號前換行
sb.append("zi").append("xin")...append
("huang");
//參數很多的方法調用可能超過 120 個字符,不要在逗號前換行
method(args1, args2, args3, ...
, argsX);
~~~
7. 【強制】方法參數在定義和傳入時,多個參數逗號后邊必須加空格。
~~~
正例:下例中實參的"a",后邊必須要有一個空格。
method("a", "b", "c");
~~~
8. 【強制】IDE 的 text file encoding 設置為 UTF-8; IDE 中文件的換行符使用 Unix 格式,不要使用 windows 格式。
9. 【推薦】方法體內的執行語句組、變量的定義語句組、不同的業務邏輯之間或者不同的語義之間插入一個空行。相同業務邏輯和語義之間不需要插入空行。