Provided by: gccgo-go_1.22~2build1_amd64 bug

NAME

       gofmt - format Go programs

SYNOPSIS

       gofmt [flags] [path ...]

DESCRIPTION

       Gofmt  formats Go programs. It uses tabs for indentation and blanks for alignment. Alignment assumes that
       an editor is using a fixed-width font.

       Without an explicit path, it processes the standard input. Given a file, it operates on that file;  given
       a  directory,  it operates on all .go files in that directory, recursively. (Files starting with a period
       are ignored.) By default, gofmt prints the reformatted sources to standard output.

OPTIONS

       -d     Do not print reformatted sources to standard output.  If a file's  formatting  is  different  than
              gofmt's, print diffs to standard output.

       -e     Print all (including spurious) errors.

       -l     Do  not  print  reformatted  sources to standard output.  If a file's formatting is different from
              gofmt's, print its name to standard output.

       -r rule
              Apply the rewrite rule to the source before reformatting.

       -s     Try to simplify code (after applying the rewrite rule, if any).

       -w     Do not print reformatted sources to standard output.  If a file's  formatting  is  different  from
              gofmt's,  overwrite it with gofmt's version. If an error occurred during overwriting, the original
              file is restored from an automatic backup.

       Debugging support:

       -cpuprofile filename
              Write cpu profile to the specified file.

       The rewrite rule specified with the -r flag must be a string of the form:

             pattern -> replacement

       Both pattern and replacement must be valid Go expressions. In  the  pattern,  single-character  lowercase
       identifiers  serve as wildcards matching arbitrary sub-expressions; those expressions will be substituted
       for the same identifiers in the replacement.

       When gofmt reads from standard input, it accepts either a full  Go  program  or  a  program  fragment.  A
       program  fragment  must  be  a  syntactically valid declaration list, statement list, or expression. When
       formatting such a fragment, gofmt preserves leading indentation as well as leading and  trailing  spaces,
       so that individual sections of a Go program can be formatted by piping them through gofmt.

EXAMPLES

       To check files for unnecessary parentheses:

             gofmt -r '(a) -> a' -l *.go

       To remove the parentheses:

             gofmt -r '(a) -> a' -w *.go

       To convert the package tree from explicit slice upper bounds to implicit ones:

             gofmt -r 'α[β:len(α)] -> α[β:]' -w $GOROOT/src/pkg

   The simplify command
       When invoked with -s gofmt will make the following source transformations where possible.

           An array, slice, or map composite literal of the form:
               []T{T{}, T{}}
           will be simplified to:
               []T{{}, {}}

           A slice expression of the form:
               s[a:len(s)]
           will be simplified to:
               s[a:]

           A range of the form:
               for x, _ = range v {...}
           will be simplified to:
               for x = range v {...}

           A range of the form:
               for _ = range v {...}
           will be simplified to:
               for range v {...}

       This may result in changes that are incompatible with earlier versions of Go.

AUTHOR

       This  manual  page  was  written  by  Michael Stapelberg <stapelberg@debian.org> and is maintained by the
       Debian Go Compiler Team <team+go-compiler@tracker.debian.org> based on the output of 'go  doc  cmd/gofmt'
       for the Debian project (and may be used by others).

                                                   2021-09-06                                           GOFMT(1)