Staticcheck

Go 语言静态代码分析
授权协议 MIT
开发语言 Google Go
所属分类 开发工具、 代码管理分析/审查/优化
软件类型 开源软件
地区 不详
投 递 者 顾永福
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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)

 

  • vscode go开发staticcheck配置 staticcheck简介 它是针对go的静态检查工具,文档地址如下 https://staticcheck.io/docs 命令行使用staticcheck检查 检查当前目录 ~/go1.15_path/bin/staticcheck 输出示例如下: filtermgr.go:764:2: redundant return statement (

  • staticcheck.io 下面是摘抄出来的几个: SA6001 – Missing an optimization opportunity when indexing maps by byte slices Map keys must be comparable, which precludes the use of byte slices. This usually leads to usi

  • 在VScode中配置golang环境时,在我电脑设置了代理的情况下,安装上面几个go的工具时,一直提示失败: Installing golang.org/x/tools/gopls@latest FAILED { "killed": false, "code": 1, "signal": null, "cmd": "/Users/admin/.gvm/gos/go1.19/bin/go insta

  • S1021是 go-staticcheck 中的一条静态检查规则。它指出,应该将变量声明与赋值合并到下一行。 例如,应该将以下代码 var x intx = 5 修改为 var x= 5 这样可以更简洁地表示变量的定义和初始值。但是,这不是一项强制性的规则,你可以按照自己的喜好来决定是否遵循。

  • staticcheck是一个go的静态代码扫描工具。 如果想递归扫描目录下的代码,执行如下操作 进入代码目录 staticcheck ./... 终端就会打印相应的代码提示信息: httptransport/client/httpclient.go:40:39: should use make([]driver.UpdateOperation, len(ops)) instead (S1019)

 相关资料
  • 代码静态分析可以在不运行代码的情况下,提前检测代码。 主要可以做两点 语法检测 编码规范检测 作为开发人员,在日常编码中,难免会范一些低级错误,比如少个括号,少个逗号,使用了未定义变量等等,我们往往会使用编辑器的 lint 插件来检测此类错误。 对于我们 OpenResty 开发中,日常开发的都是 Lua 代码,所以我们可以使用 luacheck 这款静态代码检测工具来帮助我们检查,比较好的一点是

  • 问题内容: 我只是想知道Swift是像php一样的动态还是静态的,我的意思是我可以在应用程序运行时生成类吗? 问题答案: 它是静态的-非常静态。编译器必须有关于所有类和功能的全部信息 在编译时 。您可以(使用)“扩展”现有的类,但是即使那样,您也必须在编译时完全定义该扩展所包含的内容。 Objective-C是动态的,并且在现实生活中,由于您可能会在Cocoa的存在下使用Swift,因此可以使用O

  • 我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?

  • 我正在尝试将我的Java类转换为静态编程语言,这是Java代码: 这就是我把它转换成的: Lambda符号似乎根本不起作用,或者我就是搞不懂。我在Kotlin中发现的所有双函数示例都直接返回这样的值 双函数{名称,年龄- 这在语法上是正确的,但在返回某些内容之前,我需要一些额外的逻辑。出现两条错误消息: > 类型不匹配。必需:单位,找到:字符串 但我确实想返回一个字符串,我还显式声明了它。但是,还

  • 我想知道是否有一个工具,它将我的代码库和一个jar文件作为输入,它将在代码库中搜索这个jar文件正在使用的任何地方,并给我输出。不应使用Eclispe IDE。(变得微不足道)。我已经搜索了一些静态代码分析工具,如PMD、Checkstyle、findbugs。但他们都没有我需要的选择。你能给我推荐一个能完成上述任务的工具吗?

  • 主要内容:ISO 语言代码,ISO 639-1 语言代码ISO 语言代码 HTML 的 lang 属性可用于声明网页或部分网页的语言,这对搜索引擎和浏览器是有帮助的。 根据 W3C 推荐标准,您应该通过 <html> 标签中的 lang 属性对每张页面中的主要语言进行声明: 比如声明原文版语言: <html lang="en"> ... </html> 在 XHTML 中,采用如下方式在 <html> 标签中对语言进行声明: <html xmlns="

  • 本文向大家介绍动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,包括了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍的使用技巧和注意事项,需要的朋友参考一下 关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。 1. 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如

  • 如图所示,https://stackoverflow.com/a/16639438/8949356,在Java中,当声明的类是公共类时,可以重写其函数 但是我想知道如何用静态编程语言编写完全相同的代码,我已经尝试了很多,但没有找到任何关于这个主题的东西。我可以在Java中去做这件事,但我的其余代码是用静态编程语言编写的,而且我不能一直带着这种怀疑;静态编程语言对我来说是一个很好的工具,我想学习它。