Staticcheck是一个开源的 Go语言静态代码分析工具。
例如用来分析无用的变量:
packagemainimport("errors""fmt""log")typeResultstruct{Entries[]string}funcQuery()(Result,error){returnResult{Entries:[]string{},},nil}funcResultEntries()(Result,error){err:=errors.New("noentriesfound")result,err:=Query()iferr!=nil{returnResult{},err}iflen(result.Entries)==0{returnResult{},err}returnresult,nil}funcmain(){result,err:=ResultEntries()iferr!=nil{log.Fatal(err)}fmt.Printf("result=%v,err=%v",result,err)}分析结果:
$staticcheckmain.gomain.go:20:2:thisvalueoferrisneverused(SA4006)main.go:20:19:Newisapurefunctionbutitsreturnvalueisignored(SA4017)
评论