Golang中go fmt工具的使用指南
Golang中go fmt工具的使用指南 文档中提到 go fmt 会重新格式化你的代码。
它具体会格式化哪些内容? 我尝试使用了一个示例文件,但没理解它到底做了什么。
3 回复
它会重新格式化你的代码。
如果你有这样的代码:
package main
import "fmt"
func main() {
fmt.Println( "foo %s",
"bar",
)
}
那么 go fmt 会将其转换为这样:
package main
import "fmt"
func main() {
fmt.Println("foo %s",
"bar",
)
}
go fmt 是 Go 语言内置的代码格式化工具,它会自动按照 Go 语言官方的代码风格规范重新格式化你的源代码。以下是它会修改的主要内容和示例:
主要格式化内容:
- 缩进和对齐:统一使用制表符(tab)进行缩进
- 空格:
- 操作符周围的空格
- 逗号后的空格
- 注释的格式
- 括号:删除不必要的括号,添加必要的括号
- 导入排序:按字母顺序对 import 语句进行分组排序
- 代码块格式:统一花括号的位置和空行
示例对比:
格式化前:
package main
import ("fmt";"strings")
func main( ) {
x:=1
y:=2
result:=x+y
fmt.Println("结果:",result)
if result>2{
fmt.Println("大于2")
}
}
运行 go fmt 后:
package main
import (
"fmt"
"strings"
)
func main() {
x := 1
y := 2
result := x + y
fmt.Println("结果:", result)
if result > 2 {
fmt.Println("大于2")
}
}
具体变化:
- import 语句被拆分并按字母顺序排序
- 操作符
:=和=周围添加了空格 - 花括号
{被移到行尾 - 统一了缩进(使用 tab)
- 删除了函数名后的空格
main( )→main() - 添加了适当的空行分隔
使用方法:
# 格式化当前目录所有Go文件
go fmt
# 格式化指定文件
go fmt main.go
# 格式化整个模块
go fmt ./...
go fmt 确保所有 Go 代码具有一致的风格,这是 Go 语言强调的工程实践之一。

