Estou aprendendo o Go, mas acho um pouco chato que, ao compilar, não deixe nenhuma variável ou pacote sem uso.
Isso realmente está me atrasando bastante. Por exemplo, eu só queria declarar um novo pacote e planejar usá-lo mais tarde ou apenas descomentar algum comando para testar. Eu sempre recebo o erro e preciso comentar todos esses usos.
Existe alguma maneira de evitar esse tipo de check-in no Go?
Respostas:
Esse erro está aqui para forçá-lo a escrever um código melhor e não se esqueça de usar tudo o que declarar ou importar. Isso facilita a leitura do código escrito por outras pessoas (você sempre tem certeza de que todas as variáveis declaradas serão usadas) e evita possíveis códigos mortos.
Mas, se você realmente quiser pular esse erro, poderá usar o identificador em branco (
_
):torna-se
Como dito por kostix nos comentários abaixo, você pode encontrar a posição oficial da equipe Go nas Perguntas frequentes :
fonte
Você pode usar uma "função nula" simples para isso, por exemplo:
Que você pode usar assim:
Há também um pacote para isso, para que você não precise definir a
Use
função todas as vezes:fonte
De acordo com o FAQ :
Não concordo necessariamente com isso por várias razões que não valem a pena. É o que é e não é provável que mude no futuro próximo.
Para pacotes, existe a
goimports
ferramenta que adiciona automaticamente pacotes ausentes e remove os não utilizados. Por exemplo:Você deve poder executar isso a partir de qualquer editor decente incompleto - por exemplo, para o Vim:
A
goimports
página lista alguns comandos para outros editores e você normalmente o define para ser executado automaticamente quando você salva o buffer no disco.Observe que
goimports
também será executadogofmt
.Como já foi mencionado, para variáveis, a maneira mais fácil é atribuí-las (temporariamente) a
_
:fonte
Um ângulo não mencionado até agora são os conjuntos de ferramentas usados para editar o código.
Usar o Código do Visual Studio junto com a Extensão de lukehoban chamada
Go
fará uma mágica automática para você. A extensão Go executa automaticamentegofmt
,golint
etc, e remove e adicionaimport
entradas . Então, pelo menos essa parte agora é automática.Vou admitir que não é 100% da solução para a pergunta, mas por mais útil que seja.
fonte
Caso outras pessoas tenham dificuldade em entender isso, acho que pode ajudar a explicá-lo em termos muito diretos. Se você tem uma variável que não usa, por exemplo, uma função para a qual você comentou a chamada (um caso de uso comum):
Você pode atribuir uma variável inútil / em branco à função para que ela não seja mais usada :
fonte