golangci-lint使用筆記

GolangCI-Lint是一個(gè)lint聚合器,它的速度很快,平均速度是gometalinter的5倍。它易于集成和使用,具有良好的輸出并且具有最小數(shù)量的誤報(bào)。而且它還支持go modules。最重要的是免費(fèi)開(kāi)源。

一開(kāi)始想用gometalinter,結(jié)果發(fā)現(xiàn)golangci-lint更好用,而且下載也更方便.?gometalinter找了半天沒(méi)找到安裝方法,go get 下載報(bào)錯(cuò) 最后選擇用golangci-lint?



GitHub地址:https://github.com/golangci/golangci-lint/

安裝方法

# Go 1.16+

go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.42.1

# Go version < 1.16

go get -u github.com/golangci/golangci-lint/cmd/golangci-lint@v1.42.1


簡(jiǎn)單使用

-golangci-lint run [目錄](méi)/[文件]

-golangci-lint run ./...

-golangci-lint run dir1 dir2/... dir3/file1.go


支持的linterlinter詳細(xì)參數(shù)設(shè)置

可以通過(guò)命令golangci-lint help linters查看它支持的linters。你可以傳入?yún)?shù)-E/--enable來(lái)使某個(gè)linter可用,也可以使用-D/--disable參數(shù)來(lái)使某個(gè)linter不可用。

golangci-lint run --disable-all -E errcheck

golangci-lint run -v --no-config --disable-all -E goimports --fix main.go

常用的Linter介紹

typecheck 與go編譯器類(lèi)似的類(lèi)型檢查

cyclop

govet Vet檢查Go源代碼并報(bào)告可疑的結(jié)構(gòu),比如Printf調(diào)用,其參數(shù)與格式字符串不一致

ineffassign? 檢測(cè)對(duì)現(xiàn)有變量的賦值何時(shí)未被使用

staticcheck

varcheck? ? 找到未使用的全局常量或變量

deadcode? 未使用到的代碼,

errcheck 返回的error未處理

structcheck 檢測(cè)結(jié)構(gòu)體中未使用的字段

unused? 未使用的常量、變量、函數(shù)和類(lèi)型定義

gosimple 代碼中有需要優(yōu)化的地方,用于簡(jiǎn)化代碼風(fēng)格

.golangci.yml配置? golangci-lint run -c .golangci.yaml

run:

? skip-dirs:

? ? - pkg/analyzer/testdata

linters-settings:

? golint:

? ? min-confidence: 0

? goconst:

? ? min-len: 2

? ? min-occurrences: 3

? misspell:

? ? locale: US

linters:

? enable-all: true

? disable:

? - lll

? - prealloc

? - dupl

? - wsl

? - nlreturn

? - goerr113

? - exhaustivestruct

? - paralleltest

? - testpackage

? - gomnd

? - gocognit

? - nestif

? - interfacer


有問(wèn)題 會(huì)直接報(bào)錯(cuò) 不需要編譯,這里只是多了一個(gè)空格,就會(huì)有提示,非常方便



參考文章

http://www.itdecent.cn/p/7b24d4ce68c0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容