問題闡述
最近在Github上提交PR后,遇到了這么一個問題:golangci-lint
運行失敗,具體原因是File is not gofumpt-ed (gofumpt)
。
名詞解釋
golangci-lint: golangci-lint
是Go語言社區中常用的代碼質量檢查工具,它可以幫助開發者發現代碼中的潛在問題和不規范之處。它集成了多種代碼檢查工具,用于檢查代碼風格、靜態分析、性能問題等。
可以在本地使用該工具,會輸出當前項目的警告與錯誤等。
//前提確保`GOPATH/bin`在path環境變量里
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
golangci-lint run
gofumpt: gofumpt
是一個用于格式化Go代碼的工具,它是 gofmt
的替代品。gofmt
是Go語言官方提供的代碼格式化工具,而 gofumpt
是在 gofmt
基礎上進行改進的,旨在強制執行一種更加一致和規范的代碼風格。
//前提確保`GOPATH/bin`在path環境變量里
go install mvdan.cc/gofumpt@latest
gofumpt -w your_file.go
在我的情況下,出現了File is not gofumpt-ed
的錯誤,意味著提交中的某個文件不符合 gofumpt
規定的代碼格式。這可能是因為代碼中的一些排版問題,例如縮進、空格、換行等方面不符合規范。為了通過代碼審查,需要對這些文件進行格式化,使其符合 gofumpt
的規范。
解決辦法
從我提供的截圖可以看到:Check failure on line 20 in object/get-dashboard.go
。說明是get-dashboard.go
這個文件20行有問題。只需要cd
到有問題的go
文件目錄,執行命令:gofumpt -w get-dashboard.go
。這樣gofumpt
工具就會自動幫我們格式化代碼。格式化的結果就是將部分多余的換行刪了,也就是刪掉第20行。然后我重新commit
代碼,發現golangci-lint
就可以通過了。