golangci-lint使用笔记

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

安装方法(注意与golang的版本对应)

方式一:使用命令: go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
方式二:离线安装:https://github.com/golangci/golangci-lint/releases

简单使用

  • golangci-lint run [目录]/[文件]
  • golangci-lint run ./...
  • golangci-lint run dir1 dir2/... dir3/file1.go

支持的linter linter详细参数设置

可以通过命令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

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