Golang中gofmt和goimports如何配置以遵循命名规范?
- 内容介绍
- 文章标签
- 相关推荐
本文共计991个文字,预计阅读时间需要4分钟。
很多人误以为使用`gofmt`会自动将`myVar`变成`myVar`(小写)或`MyVar`(大写首字母),但实际上它只会调整缩进、空格、换行和括号位置。名称是否符合规范取决于个人判断或外部工具。
-
gofmt不修改任何变量名、函数名、类型名,哪怕它们明显违反规范 - 它默认不读取
go.mod,也不感知包作用域,所以无法判断某个名字该不该导出 - 执行
gofmt -w main.go后如果命名出问题,一定是你写的,不是它改的
goimports 替代 gofmt?不是替代,是叠加使用
goimports 本身包含 gofmt 的全部能力,但它额外处理 import 块:自动增删包引用、按字母排序、合并标准库与第三方导入。但注意,它默认**不启用**对未使用 import 的清理(除非加 -local 或配置),也**不会重排已有 import 分组**,除非你明确告诉它规则。
本文共计991个文字,预计阅读时间需要4分钟。
很多人误以为使用`gofmt`会自动将`myVar`变成`myVar`(小写)或`MyVar`(大写首字母),但实际上它只会调整缩进、空格、换行和括号位置。名称是否符合规范取决于个人判断或外部工具。
-
gofmt不修改任何变量名、函数名、类型名,哪怕它们明显违反规范 - 它默认不读取
go.mod,也不感知包作用域,所以无法判断某个名字该不该导出 - 执行
gofmt -w main.go后如果命名出问题,一定是你写的,不是它改的
goimports 替代 gofmt?不是替代,是叠加使用
goimports 本身包含 gofmt 的全部能力,但它额外处理 import 块:自动增删包引用、按字母排序、合并标准库与第三方导入。但注意,它默认**不启用**对未使用 import 的清理(除非加 -local 或配置),也**不会重排已有 import 分组**,除非你明确告诉它规则。

