golangci-lint使用笔记

GolangCI-Lint是一个lint聚合器,它的速度很快,平均速度是gometalinter的5倍。它易于集成和使用,具有良好的输出并且具有最小数量的误报。而且它还支持go modules。最重要的是免费开源。

一开始想用gometalinter,结果发现golangci-lint更好用,而且下载也更方便. gometalinter找了半天没找到安装方法,go get 下载报错 最后选择用golangci-lint 



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

安装方法

# Go 1.16+

go install github.com/golangci/golangci-lint/cmd/[email protected]

# Go version < 1.16

go get -u github.com/golangci/golangci-lint/cmd/[email protected]


简单使用

-golangci-lint run [目录]/[文件]

-golangci-lint run ./...

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


支持的linterlinter详细参数设置

可以通过命令golangci-lint help linters查看它支持的linters。你可以传入参数-E/--enable来使某个linter可用,也可以使用-D/--disable参数来使某个linter不可用。

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

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

常用的Linter介绍

typecheck 与go编译器类似的类型检查

cyclop

govet Vet检查Go源代码并报告可疑的结构,比如Printf调用,其参数与格式字符串不一致

ineffassign  检测对现有变量的赋值何时未被使用

staticcheck

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

deadcode  未使用到的代码,

errcheck 返回的error未处理

structcheck 检测结构体中未使用的字段

unused  未使用的常量、变量、函数和类型定义

gosimple 代码中有需要优化的地方,用于简化代码风格

.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


有问题 会直接报错 不需要编译,这里只是多了一个空格,就会有提示,非常方便



参考文章

https://www.jianshu.com/p/7b24d4ce68c0

你可能感兴趣的:(golangci-lint使用笔记)