Este conteúdo não está disponível no idioma selecionado.
Chapter 3. gofmt
gofmt is a code formatting tool for the Go programming language, packaged together with the go compiler.
Go Toolset is distributed with gofmt 1.10.3.
3.1. Installing gofmt Copiar o linkLink copiado para a área de transferência!
In Go Toolset, gofmt is provided by the go-toolset-1.10-golang package and is automatically installed with the go-toolset-1.10 package. See Section 1.4, “Installing Go Toolset”.
3.2. Formatting Code Copiar o linkLink copiado para a área de transferência!
To format all code in the code_path path, run the gofmt tool as follows:
scl enable go-toolset-1.10 'gofmt -w code_path'
$ scl enable go-toolset-1.10 'gofmt -w code_path'
This command will directly change code in the code_path path. When code_path is a single file, the changes apply only to the file. When code_path is a directory, all .go files in the directory are processed.
When the code_path is omitted, gofmt reads standard input instead.
To print the formatted code to standard output instead of writing to the original file, omit the -w option.
It is possible to invoke gofmt through the go compiler with the fmt command. To achieve the same results as the command above, run:
scl enable go-toolset-1.10 'go fmt -l -w -s code_path'
$ scl enable go-toolset-1.10 'go fmt -l -w -s code_path'
3.3. Previewing Changes to Code Copiar o linkLink copiado para a área de transferência!
To preview changes done by formatting code in a given path code_path, run the gofmt tool with the -d option as follows:
scl enable go-toolset-1.10 'gofmt -d code_path'
$ scl enable go-toolset-1.10 'gofmt -d code_path'
The output in unified diff format is printed to standard output.
It is possible to combine both the -d and -w options.
3.4. Simplifying Code Copiar o linkLink copiado para a área de transferência!
To simplify code in a given path code_path, run the gofmt tool with the -s option as follows:
scl enable go-toolset-1.10 'gofmt -s code_path'
$ scl enable go-toolset-1.10 'gofmt -s code_path'
The code under code_path is simplified. Use the -d option to show the differences, and use the -w option to apply the changes to the code.
3.5. Refactoring code Copiar o linkLink copiado para a área de transferência!
The gofmt tool can be used to refactor code by applying arbitrary substitutions. To refactor code in a given path code_path according to a rule rewrite_rule, run the gofmt tool with the -r option as follows:
scl enable go-toolset-1.10 'gofmt -r rewrite_rule code_path'
$ scl enable go-toolset-1.10 'gofmt -r rewrite_rule code_path'
The code under code_path is refactored according to the rule rewrite_rule. Use the -d option to show the differences, and use the -w option to apply the changes to the code. The additional options must be placed after the rule rewrite_rule:
scl enable go-toolset-1.10 'gofmt -r rewrite_rule -d code_path'
$ scl enable go-toolset-1.10 'gofmt -r rewrite_rule -d code_path'
Detailed description of the rewrite rules is beyond the scope of this book. For more information, see the resources listed in Section 3.6, “Additional Resources”.
3.6. Additional Resources Copiar o linkLink copiado para a área de transferência!
A detailed description of the gofmt tool and its features is beyond the scope of this book. For more information, see the resources listed below.
Online Documentation
- Command gofmt — Official documentation of the gofmt tool.
See Also
- Chapter 1, Go Toolset — An overview of Go Toolset and more information on how to install it on your system.