2017-02-18 29 views
1

我最喜歡去的一件事是gofmt。我喜歡這樣一個事實,即編碼風格在很多方面都是標準化的。Golang編碼約定:何時破解代碼中的行?

但是還有一件事情讓我困擾:換行。我發現,如果我看看我公司的代碼庫,在何時斷線方面沒有明顯的一致性。

看看stdlib中的一些代碼,例如fmt代碼here,我仍然不確定慣例是什麼(如果它存在的話)。

例如,在fmt_integer功能here,有後if聲明機構換行符,但fmt_sbxhere有沒有。

golang有沒有關於換行符的約定?什麼被認爲是最佳實踐?

回答

2

首先,在if塊之後最多隻有一個空行(因爲go fmt)。

其次,添加或不添加一個空白行不遵循任何硬性規則,除了代碼可讀性。

它甚至沒有在「Go Code Review Comments」wiki頁面中提及。

+0

感謝您的回答。所以基本上你所說的是沒有標準的約定(沒有提出嚴格的規則)呢?無論什麼是可讀的(一個有點主觀的概念)的作品。我想知道Google或其他一些密集型組織是否有寫這方面的文章。 – orcaman

+0

@orcaman「任何可讀的(一種有點主觀的概念)都可以工作」:是的,知道這裏唯一的兩種可能性是:在'if'塊之後沒有換行符,或者一個*一個*換行符(不超過一個,所以那裏有一個硬性的規則)。 – VonC

+0

事情是,你可以很容易地結束與每行之間有一個換行符,這看起來很煩人,但可讀的代碼。有時很難分清它何時太多。我最近寫了一個沒有換行符的代碼,我覺得代碼很可讀。 – orcaman