原文鏈接:http://zhoubotong.site/post/3.html
一. Golint介紹
-
Golint 是一個源碼檢測工具用於檢測代碼規范
-
Golint 不同於gofmt, Gofmt用於代碼格式化
-
Golint會對代碼做以下幾個方面檢查
-
package注釋 必須按照 “Package xxx 開頭”
-
package命名 不能有大寫字母、下划線等特殊字符
-
struct、interface等注釋 必須按照指定格式開頭
-
struct、interface等命名
-
變量注釋、命名
-
函數注釋、命名
-
各種語法規范校驗等
二. Golint安裝
首先在我們下載的位置,通過右鍵git bash here 打開git控制台
下載golang 的 lint,下載地址:https://github.com/golang/lint
mkdir -p $GOPATH/src/golang.org/x/ cd $GOPATH/src/golang.org/x/ git clone https://github.com/golang/lint.git git clone https://github.com/golang/tools.git
到目錄$GOPATH/src/golang.org/x/lint/golint中運行
go install

安裝成功后我們會在C:\用戶\77293\go\bin 目錄下面看到我們的golint.exe執行程序,這個目錄是我們安裝go包的目錄路徑。
三、配置golint
1、打開goland Idea
2、選擇項目欄File 下拉選中 Setting,打開設置控制面板

設置參數說明:
Program $GOPATH\src\bin\golint.exe (直接填寫glint.exe所在路徑即可)
Arguments $FilePath$
Working directory $ProjectFileDir$
3、選中keymap > External Tools > External Tools > golint進行快捷鍵配置
四、golint使用
選擇我們需要檢測的go文件
按住我們之前設置的快捷鍵,就可以進行檢測了,比如說結果如下:

五. Golint檢驗規則
-
golint檢測代碼有2種方式
1: golint file -
2: golint directory
golint校驗常見的問題如下所示
-
don't use ALL_CAPS in Go names; use CamelCase
不能使用下划線命名法,使用駝峰命名法 -
exported function Xxx should have comment or be unexported
外部可見程序結構體、變量、函數都需要注釋 -
var statJsonByte should be statJSONBytevar taskId should be taskID
通用名詞要求大寫
iD/Id -> ID
Http -> HTTP
Json -> JSON
Url -> URL
Ip -> IP
Sql -> SQL -
don't use an underscore in package namedon't use MixedCaps in package name; xxXxx should be xxxxx
包命名統一小寫不使用駝峰和下划線 -
comment on exported type Repo should be of the form "Repo ..." (with optional leading article)
注釋第一個單詞要求是注釋程序主體的名稱,注釋可選不是必須的 -
type name will be used as user.UserModel by other packages, and that stutters; consider calling this Model
外部可見程序實體不建議再加包名前綴 -
if block ends with a return statement, so drop this else and outdent its block
if語句包含return時,后續代碼不能包含在else里面 -
should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...)
errors.New(fmt.Sprintf(…)) 建議寫成 fmt.Errorf(…) -
receiver name should be a reflection of its identity; don't use generic names such as "this" or "self"
receiver名稱不能為this或self -
error var SampleError should have name of the form ErrSample
錯誤變量命名需以 Err/err 開頭 -
should replace num += 1 with num++should replace num -= 1 with num--
a+=1應該改成a++,a-=1應該改成a–
