gofmt和go fmt有什么区别?

时间:2019-03-23 23:56:58

标签: go

我看到同时存在gofmtgo fmt。 gofmt和go fmt有什么区别?

2 个答案:

答案 0 :(得分:3)

运行go help fmt来查看区别。简而言之,go fmt在参数指定的程序包上运行gofmt -l -w

-w标志将结果写回到源文件。 -l标志显示已修改文件的名称。

go fmt的参数是软件包(运行go help packages以获得说明)。 gofmt的参数是文件系统路径。

以下是一些显示参数如何不同处理的示例:

 gofmt -w .   # formats files in current directory and all sub-directories
 go fmt ./... # similar to previous
 go fmt .     # formats files in current package
 gofmt -w foo/bar # formats files in directory $PWD/foo/bar and sub-dirs
 go fmt foo/bar   # formats files in directory $GOPATH/src/foo/bar
 gofmt -w     # error, no file or directory specified
 go fmt       # formats files in current package

答案 1 :(得分:2)

gofmt命令将处理作为参数给出的文件。 go fmt工具在作为参数给出的包路径中的所有文件上运行gofmt。因此,如果我位于encoding / gob目录中,

gofmt encode.go

在工具运行时将格式化单个文件decode.go

去fmt。

(实际上是默认值。)将格式化encoding / gob包中的所有文件。