Uber Go 語言程式設計規範 驗證介面的合規性

2021-10-21 02:29:54 字數 757 閱讀 3674

在編譯時適當的時候驗證介面的合規性,這主要包括:

壞的的**風格:

)好的**風格:

)語句 var _ http.handler = (*handler)(nil) 將會編譯失敗,如果*handler不能匹配http.handler介面的話。

賦值語句的右邊應該為斷言型別的零值,對於指標型別(例如*handler)、 slices 和maps則為nil,對於結構體型別則為空的結構體。

例如:

type loghandler struct 

Uber Go 語言程式設計規範 Linting

我們建議至少使用以下的linters 因為我們認為它們有助於發現最常見的問題,並且在沒有不必要的規定的情況下為 質量建立乙個高標準 我們推薦 golangci lint 作為go 的首選lint執行器,主要是因為它在大型 庫中的效能以及同時配置和使用多個規範lint的能力。這個repo 有個例子.g...

Uber Go 語言程式設計規範 錯誤型別

在golang中有多種宣告錯誤的方式 當返回錯誤時,請考慮以下內容以確定最佳選擇 如果客戶端需要檢測錯誤,並且您已經使用errors.new建立了乙個簡單的錯誤,請使用var定義有乙個錯誤變數。bad package foo 直接返回乙個error func open error package b...

Uber Go 語言程式設計規範 使用time處理時間

時間處理是很複雜的。關於時間的錯誤的假設通常包括以下幾個方面 一天有 24 小時 一小時有 60 分鐘 一周有七天 一年 365 天 還有更多 例如,1表示在乙個時間點上加上24小時,並不總能產生乙個新的日曆日期。因此,在處理時間時,始終使用 time 包,因為它有助於以更安全 更精確的方式處理這些...