網頁

2019/4/17

Java 大括弧 { } 該不該換行

Java 程式中用來宣告類別區塊,方法區塊,if else區塊等所用到的大括弧(curly brace)開頭{符號(opening brace)是否該換行?

例如下面的if區塊。

// Good
if (condition) {
    // statements;
}

// Bad
if (condition)
{
    // statements;
}

Java coding style中大括弧不應該換行,例如
Code Conventions for the Java TM Programming Language Revised April 20, 1999
Google Java Style Guide
Airbnb JavaScript Style Guide
Alibaba coding style
都是開頭大括弧不換行。如果換行會讓你程式碼量增加20%到50%。


這種開頭括弧不換行的風格又稱為Egyptian Brackets,或稱為K&R Style或1TBS(One True Brace Style)


開頭大括弧換行看了真令人厭煩。直到最近終於知道為什麼有些寫Java程式的人會把大括弧換行,有可能他是寫C#(C sharp)起家的,C#的習慣就是大括弧換行,如果有一天我去寫C#我也會乖乖的遵守大括弧換行的規範。Show some respect OK?


Go語言更是不允許大括弧單獨一行,否則編譯會報錯,藉此禁止大括弧換行。例如下面的Go程式執行會報錯。

func main() // missing function body
{ // syntax error: unexpected semicolon or newline before {
    ...
}


沒有留言:

張貼留言