Go 语言静态代码分析 Staticcheck

MIT
Google Go
跨平台
2019-11-11
红薯

Staticcheck 是一个开源的 Go 语言静态代码分析工具。

例如用来分析无用的变量:

package main

import (
	"errors"
	"fmt"
	"log"
)

type Result struct {
	Entries []string
}

func Query() (Result, error) {
	return Result{
		Entries: []string{},
	}, nil
}

func ResultEntries() (Result, error) {
	err := errors.New("no entries found")
	result, err := Query()
	if err != nil {
		return Result{}, err
	}
	if len(result.Entries) == 0 {
		return Result{}, err
	}
	return result, nil
}

func main() {
	result, err := ResultEntries()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("result=%v, err=%v", result, err)
}

分析结果:

$ staticcheck main.go
main.go:20:2: this value of err is never used (SA4006)
main.go:20:19: New is a pure function but its return value is ignored (SA4017)

 

的码云指数为
超过 的项目
加载中
请先登录后再评论。

暂无资讯

暂无问答

Go工程代码检查工具

bodyclose 项目地址:https://github.com/timakin/bodyclose 一个用于检查http.Get()返回值有没有正确关闭问题: resp, err := http.Get("http://example.com/") if err != nil { // handle...

07/21 19:04
88
0
如何保障Go语言基础代码质量?

为什么要谈这个topic? 实践中,质量保障体系的建设,主要针对两个目标: 一是不断提高目标业务测试覆盖率,保障面向客户的产品质量;二就是尽可能的提高人效,增强迭代效率。而构建全链路质量...

2019/03/06 23:58
24
0
10分钟将你的Go工程转换为Go Module模式

引言 自从在Go 1.11和更高版本中引入了Go的新的依赖管理系统以来,GoLang开发人员已经接受了包版本控制解决方案。这样做的用户可以使用GoCenter存储库中的不可变公共Go 模块,并通过更健壮、...

03/05 18:17
152
0
golang很有用的一篇文章转载

原文地址:https://juejin.im/post/5cf217845188256b8b59e8f4 1. 语言功能 (Language Features) 1.1 智能感知 (IntelliSense) 编码时符号自动补全(使用 gocode ) 编码时函数签名帮助提示(...

2019/07/04 16:25
9
0
Go 语言优秀资源整理,为项目落地加速🏃

最后更新于2019.11.22 Go 语言优秀资源整理,为项目落地加速🏃 在 GitHub 上稳定更新,觉得不错请点个 Star ❤️ 如转载分享,请保留出处,谢谢 😆 原文地址: https://shockerli.net/pos...

2019/04/10 10:10
69
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部