我看到同时存在gofmt
和go fmt
。 gofmt和go fmt有什么区别?
答案 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包中的所有文件。