go fmt

为了保持代码的一致性并消除代码格式化方面的争论,Go提供了go fmt工具。

格式化一个文件:go fmt main.go

格式化一个文件夹下的所有文件:go fmt myProject

您还可以使用gofmt -s(而不是go fmt)来尝试简化代码。

gofmt(不是go fmt)也可以用于重构代码。 它理解Go语法,因此它比搜索和替换功能更强大。例如,给定下列程序(main.go):

package main

type Example struct {
    Name string
}

func (e *Example) Original(name string) {
    e.Name = name
}

func main() {
    e := &Example{"Hello"}
    e.Original("Goodbye")
}

您可以使用gofmtOriginal方法重构为Refactor

gofmt -r 'Original -> Refactor' -d main.go

将产出如下diff:

-func (e *Example) Original(name string) {
+func (e *Example) Refactor(name string) {
 	e.Name = name
 }

 func main() {
 	e := &Example{"Hello"}
-	e.Original("Goodbye")
+	e.Refactor("Goodbye")
 }

最后更新于