Согласно FAQ :
Некоторые просят опцию компилятора, чтобы отключить эти проверки или, по крайней мере, уменьшить их до предупреждений. Однако такая опция не была добавлена, поскольку параметры компилятора не должны влиять на семантику языка, а компилятор Go не выдает предупреждения, а только ошибки, которые мешают компиляции.
Есть две причины отсутствия предупреждений. Во-первых, если стоит пожаловаться, стоит исправить в коде. (И если это не стоит исправлять, упоминать не стоит.) Во-вторых, компилятор генерирует предупреждения, побуждающие реализацию предупреждать о слабых случаях, которые могут вызвать компиляцию, и маскировать реальные ошибки, которые следует исправить.
Я не обязательно согласен с этим по разным причинам, в которые не стоит вдаваться. Это то, что есть, и вряд ли оно изменится в ближайшем будущем.
Для пакетов есть goimports
инструмент, который автоматически добавляет отсутствующие пакеты и удаляет неиспользуемые. Например:
# Install it
$ go get golang.org/x/tools/cmd/goimports
# -w to write the source file instead of stdout
$ goimports -w my_file.go
Вы должны быть в состоянии запустить это из любого наполовину приличного редактора - например, для Vim:
:!goimports -w %
На goimports
странице перечислены некоторые команды для других редакторов, и вы обычно настраиваете их на автоматический запуск при сохранении буфера на диск.
Обратите внимание, что goimports
также будет работать gofmt
.
Как уже упоминалось, для переменных самый простой способ (временно) назначить их _
:
// No errors
tasty := "ice cream"
horrible := "marmite"
// Commented out for debugging
//eat(tasty, horrible)
_, _ = tasty, horrible