Estoy aprendiendo Go, pero creo que es un poco molesto que al compilar no deje ninguna variable o paquete sin usar.
Esto realmente me está frenando bastante. Por ejemplo, solo quería declarar un nuevo paquete y planear usarlo más tarde o simplemente descomentar algún comando para probar. Siempre recibo el error y necesito comentar todos esos usos.
¿Hay alguna forma de evitar este tipo de verificación en Go?
Respuestas:
Ese error está aquí para obligarlo a escribir un mejor código y asegúrese de usar todo lo que declare o importe. Hace que sea más fácil leer el código escrito por otras personas (siempre está seguro de que se usarán todas las variables declaradas) y evita algunos posibles códigos muertos.
Pero, si realmente quiere omitir este error, puede usar el identificador en blanco (
_
):se convierte
Como dijo kostix en los comentarios a continuación, puede encontrar la posición oficial del equipo Go en las preguntas frecuentes :
fuente
Puede usar una simple "función nula" para esto, por ejemplo:
Que puedes usar así:
También hay un paquete para esto, por lo que no tiene que definir la
Use
función cada vez:fuente
De acuerdo con las preguntas frecuentes :
No estoy necesariamente de acuerdo con esto por varias razones por las que no vale la pena entrar. Es lo que es, y no es probable que cambie en el futuro cercano.
Para los paquetes, existe la
goimports
herramienta que agrega automáticamente los paquetes que faltan y elimina los que no se utilizan. Por ejemplo:Debería poder ejecutar esto desde cualquier editor decente a mitad de camino, por ejemplo, para Vim:
La
goimports
página enumera algunos comandos para otros editores, y normalmente lo configura para que se ejecute automáticamente cuando guarda el búfer en el disco.Tenga en cuenta que
goimports
también se ejecutarágofmt
.Como ya se mencionó, para las variables la forma más fácil es asignarlas (temporalmente) a
_
:fuente
Un ángulo no mencionado hasta ahora es el conjunto de herramientas utilizadas para editar el código.
El uso de Visual Studio Code junto con la extensión de lukehoban llamada
Go
hará algo de magia automática para usted. La extensión Go se ejecuta automáticamentegofmt
,golint
etc., y elimina y agregaimport
entradas . Entonces, al menos esa parte ahora es automática.Admitiré que no es el 100% de la solución a la pregunta, pero lo suficientemente útil.
fuente
En caso de que otros tengan dificultades para dar sentido a esto, creo que podría ser útil explicarlo en términos muy directos. Si tiene una variable que no utiliza, por ejemplo, una función para la que ha comentado la invocación (un caso de uso común):
Puede asignar una variable inútil / en blanco a la función para que ya no se use :
fuente