Zgodnie z FAQ :
Niektórzy poprosili o opcję kompilatora, aby wyłączyć te kontrole lub przynajmniej ograniczyć je do ostrzeżeń. Taka opcja nie została jednak dodana, ponieważ opcje kompilatora nie powinny wpływać na semantykę języka, a ponieważ kompilator Go nie zgłasza ostrzeżeń, tylko błędy uniemożliwiające kompilację.
Istnieją dwa powody braku ostrzeżeń. Po pierwsze, jeśli warto narzekać, warto to naprawić w kodzie. (A jeśli nie warto tego naprawiać, nie warto o tym wspominać.) Po drugie, generowanie ostrzeżeń przez kompilator zachęca implementację do ostrzegania o słabych przypadkach, które mogą powodować hałas w kompilacji, maskując prawdziwe błędy, które należy naprawić.
Niekoniecznie się z tym zgadzam z różnych powodów, w które nie warto wchodzić. Tak właśnie jest i prawdopodobnie nie zmieni się w najbliższej przyszłości.
W przypadku pakietów istnieje goimports
narzędzie, które automatycznie dodaje brakujące pakiety i usuwa nieużywane. Na przykład:
# Install it
$ go get golang.org/x/tools/cmd/goimports
# -w to write the source file instead of stdout
$ goimports -w my_file.go
Powinieneś być w stanie uruchomić to z dowolnego w połowie przyzwoitego edytora - na przykład dla Vima:
:!goimports -w %
Na goimports
stronie znajduje się lista niektóre polecenia dla innych redaktorów i zazwyczaj ustawić go uruchomić automatycznie po zapisaniu bufora na dysk.
Pamiętaj, że goimports
będzie również działać gofmt
.
Jak już wspomniano, w przypadku zmiennych najłatwiej jest (tymczasowo) przypisać je do _
:
// No errors
tasty := "ice cream"
horrible := "marmite"
// Commented out for debugging
//eat(tasty, horrible)
_, _ = tasty, horrible