云计算

Go代码检查工具--增强版

2018-10-30  本文已影响395人  沙漠中的猴
package main

import "os"

func main(){
    f, _ := os.Open("main.go")
    defer f.Close()
}

上面代码有什么问题吗?
当我们执行go build的时候,发现并没有报错。

简介

gometalinter工具可以检查Go代码中一些隐蔽的错误。go的编译器有的时候仅仅是能检查语法层面的错误,而不能检测出逻辑的错误。所以就需要一些额外的错误检查工具来进行代码检测。

地址

github.com/alecthomas/gometalinter

安装方式

go get -u -x github.com/alecthomas/gometalinter

可以看到下载的内容,以及更新安装包。

root@000d3fada0b3:~/go/src# gometalinter --install
Installing:
  deadcode
  dupl
  errcheck
  gochecknoglobals
  gochecknoinits
  goconst
  gocyclo
  goimports
  golint
  gosec
  gosimple
  gotype
  gotypex
  ineffassign
  interfacer
  lll
  maligned
  megacheck
  misspell
  nakedret
  safesql
  staticcheck
  structcheck
  unconvert
  unparam
  unused
  varcheck

上面的内容都是该工具中包含的插件。我们在代码目录执行该工具

root@000d3fada0b3:~/go/src# gometalinter
main.go:7:15:warning: error return value not checked (defer f.Close()) (errcheck)

会提示你,第7行错误返回没有检查。

有些时候这些工具会减少你写代码的出错概率。

上一篇 下一篇

猜你喜欢

热点阅读