Staticcheck 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Staticcheck 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
Staticcheck 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
Staticcheck 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
Staticcheck 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

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)

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2020/07/21 19:04

Go工程代码检查工具

## bodyclose 项目地址:https://github.com/timakin/bodyclose 一个用于检查`http.Get()`返回值有没有正确关闭问题: ``` resp, err := http.Get("http://example.com/") if err != nil { // handle error } defer resp.Body.Close() // OK body, err := ioutil.ReadAll(resp.Body) ``` ## deadcode 项目地址:https://github.com/remyoudompheng/go-misc/tree/master/deadcode 检查无用的变量声明工具。 ## depguard 项目地址...

0
0
发表了博客
2020/09/12 17:33

VSCode 开发 Go 程序也可以和 GoLand一样强大

好的编程语言搭配好的开发工具,那必定是如虎添翼。Gopher 们应该都知晓 GoLand,这是 IDEA 专门为 Go 语言开发的集成开发环境(IDE)。此前 IDEA 对 Go 的支持是通过插件的,后来开发独立的 IDE,可见 IDEA 看到了 Go 的发展和前景。 今天这篇文章,主要给大家介绍如何将 VSCode 打造成为一个强大的 Go 开发工具。 vscode-go 插件 打开 VSCode,切换到扩展搜索界面,输入 go 搜索;或者打开一个 Go 源文件,VSCode 会建议你安装 ...

0
0
发表了博客
2020/10/21 10:39

修改brew修改为中科大源

cd "$(brew --repo)" git remote set-url origin https://mirrors.ustc.edu.cn/brew.git cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc source ~/.zshrc brew update 这样子的话,瞬间就更新完毕了!如下: ➜ homebrew-core git:...

0
0
发表于运维专区
2020/03/05 18:17

10分钟将你的Go工程转换为Go Module模式

引言 自从在Go 1.11和更高版本中引入了Go的新的依赖管理系统以来,GoLang开发人员已经接受了包版本控制解决方案。这样做的用户可以使用GoCenter存储库中的不可变公共Go 模块,并通过更健壮、更可靠的Go Pipeline获得更快的构建速度。 但是,将现有的项目转换为使用Go Module并不总是很容易,尤其是如果该项目已经尝试过GoLang的其他包管理解决方案时。 为了帮助GoLang社区正确地使用Go Module,我们将使用开源的etcd项目(Kuber...

0
0
发表了博客
2019/03/06 23:58

如何保障Go语言基础代码质量?

为什么要谈这个topic? 实践中,质量保障体系的建设,主要针对两个目标: 一是不断提高目标业务测试覆盖率,保障面向客户的产品质量;二就是尽可能的提高人效,增强迭代效率。而构建全链路质量卡点就是整个体系建设的核心手段。笔者用下图来描述这整个链路: 可以看到,虽然保障业务迭代的方向性正确排在最前面,但在具体操作上,这一步需要的是强化流程规范和构建企业文化,同时对各负责人技能培训,可以说多数是软技能。而保障基...

0
0
发表了博客
2019/07/04 16:25

golang很有用的一篇文章转载

原文地址:https://juejin.im/post/5cf217845188256b8b59e8f4 1. 语言功能 (Language Features) 1.1 智能感知 (IntelliSense) 编码时符号自动补全(使用 gocode ) 编码时函数签名帮助提示(使用 gogetdoc 或 godef+go code ) 鼠标悬停符号时快速显示信息(使用 gogetdoc 或 godef+go code ) 1.2 代码导航 (Code Navigation) 快速浏览符号定义(使用 gogetdoc 或 godef+go code ) 查找符号的引用和接口的实现(使用 guru ) ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
3 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部