staticcheck command works much like
go build or
go vet do.
It supports all of the same package patterns.
staticcheck . will check the current package, and
staticcheck ./... will check all packages.
For more details on specifying packages to check, see
go help packages
You can use
staticcheck -explain <check> to get a helpful description of a check.
Every diagnostic that
staticcheck reports is annotated with the identifier of the specific check that found the issue.
For example, in
foo.go:1248:4: unnecessary use of fmt.Sprintf (S1039)
the check's identifier is
staticcheck -explain S1039 will output the following:
Unnecessary use of fmt.Sprint Calling fmt.Sprint with a single string argument is unnecessary and identical to using the string directly. Available since 2020.1 Online documentation https://staticcheck.io/docs/checks#S1039
The output includes a one-line summary,
one or more paragraphs of helpful text,
the first version of Staticcheck that the check appeared in,
and a link to online documentation, which contains the same information as the output of