严格程度从低到高分别是 gofmt goimports gofumpt
goimports
goimports -l -w .
gofumpt
好问题,这个命令是 Go 语言相关的代码格式化工具命令。
我们来一点点解析 👇
🧩 命令拆解
1 | gofumpt -d codec/types/any_test.go |
gofumpt
是 Go 官方gofmt的一个更严格、更一致的变体。
👉 简单说,它自动格式化 Go 源码,让代码风格更统一、更干净。
(名字来自 “go fmt” + “ump” = ultimate fmt 的意思)-d
表示 “显示差异(diff)”,而不直接修改文件。
类似于git diff,它只显示“当前文件”和“格式化后的文件”有什么不同。codec/types/any_test.go
是你要检查或格式化的目标 Go 源文件路径。
📘 实际效果
执行这个命令时,它会:
- 读入
codec/types/any_test.go - 根据
gofumpt的规则重新格式化那份代码 - 不修改文件内容,只在终端输出两者的差异(如果有)
输出示例如下(举个例子):
1 | --- /path/to/codec/types/any_test.go |
意思是:gofumpt 建议在 == 两侧加空格。
✅ 常见用途
- 检查代码格式是否符合规范 (比如在 CI/CD 中)。
- 在提交之前预览差异,决定是否执行
gofumpt -w来实际修改文件。
⚙️ 补充
如果你要让它直接修改文件,可以用:
1
gofumpt -w codec/types/any_test.go
(
-w= write back changes)一般大家会在项目根目录运行:
1
gofumpt -l -w .
这样它会遍历项目,统一格式化。
要不要我帮你列一个在项目里使用 gofumpt + golangci-lint 做自动格式检查的工作流模板(比如 GitHub Actions 版本)?这样可以自动在提交时帮你验证风格一致性。
即 常用命令:
只查看而不改:
gofumpt -d 某个文件 (-d是diff)
修改
gofumpt -w codec/types/any_test.go
修改全部
gofumpt -l -w .
原文链接: https://dashen.tech/2025/10/15/Go代码格式化工具的使用/
版权声明: 转载请注明出处.