Golang中go fmt工具的使用指南

Golang中go fmt工具的使用指南 文档中提到 go fmt 会重新格式化你的代码。

它具体会格式化哪些内容? 我尝试使用了一个示例文件,但没理解它到底做了什么。

3 回复

谢谢

更多关于Golang中go fmt工具的使用指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


它会重新格式化你的代码。

如果你有这样的代码:

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 语言官方的代码风格规范重新格式化你的源代码。以下是它会修改的主要内容和示例:

主要格式化内容:

  1. 缩进和对齐:统一使用制表符(tab)进行缩进
  2. 空格
    • 操作符周围的空格
    • 逗号后的空格
    • 注释的格式
  3. 括号:删除不必要的括号,添加必要的括号
  4. 导入排序:按字母顺序对 import 语句进行分组排序
  5. 代码块格式:统一花括号的位置和空行

示例对比:

格式化前:

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 语言强调的工程实践之一。

回到顶部