Golang Go语言中一个利用简陋语法模仿 const 修饰的 linter
https://github.com/lance6716/k4Const
如果变量名长得像 kInts
,会在修改它时报错
$ go vet -vettool=$(which k4const) ./...
# awesomeProject
./main.go:239:5: write to const variable 'kInts'
顺便请问大家,编译期有什么比较近似、轻量的方法,能发现 kInts
实参赋值给了非 k
开头的形参吗?昨天看了一下 go 自带的 callgraph 、SSA 等库,比较头秃
Golang Go语言中一个利用简陋语法模仿 const 修饰的 linter
更多关于Golang Go语言中一个利用简陋语法模仿 const 修饰的 linter的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
什么东西。。。
更多关于Golang Go语言中一个利用简陋语法模仿 const 修饰的 linter的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
既然如此为什么不 const 呢?
在Go语言中,const
关键字用于声明常量,这些常量在程序运行时不能被修改。虽然Go语言本身并没有提供直接的方式通过简陋语法来模仿 const
修饰符的行为来创建自定义的linter规则(linter是一种静态代码分析工具,用于检查代码中的潜在问题),但我们可以通过编写自定义的linter规则来实现类似的效果。
要创建一个自定义的linter来检查是否遵循了某种类似于 const
的使用约定,你可以使用Go语言的静态分析工具,如 golint
或 staticcheck
,并编写自己的检查逻辑。以下是一个大致的步骤:
-
了解linter的工作原理:研究现有的linter,如
golint
,理解其如何解析代码并检查规则。 -
编写检查逻辑:根据你想要模仿的
const
修饰符的行为,编写相应的检查逻辑。这可能涉及到解析Go代码(使用go/parser
和go/ast
包),并检查特定的代码模式。 -
集成到CI/CD流程:一旦你的自定义linter规则编写完成,你可以将其集成到你的持续集成/持续部署(CI/CD)流程中,以便在代码提交时自动运行检查。
-
维护和更新:随着Go语言的更新和你项目需求的变化,定期维护和更新你的自定义linter规则。
请注意,虽然自定义linter可以提供额外的代码检查功能,但应保持其简单性和针对性,以避免引入不必要的复杂性。