139 votes

Comment désactiver l'erreur d'importation inutilisée de Golang

Par défaut, Go traite les importations inutilisées comme des erreurs, vous obligeant à supprimer l'importation. Je veux savoir s'il existe un moyen de modifier ce comportement, par exemple en le réduisant à un avertissement.

Je trouve ce problème extrêmement ennuyeux, m'empêchant de profiter de la programmation en Go.

Par exemple, je testais du code, en désactivant un segment/fonction. Certaines fonctions d'une librairie ne sont plus utilisées (par exemple, fmt, errors, peu importe), mais je devrai réactiver la fonction après un petit test. Maintenant, le programme ne se compilera pas à moins que je supprime ces importations, et quelques minutes plus tard je devrai réimporter la librairie.

J'ai fait ce processus encore et encore en développant un programme GAE.

56voto

Acidic Points 2318

Ajouter un tiret bas (_) avant le nom d'un package ignorera l'erreur d'importation inutilisée.

Voici un exemple de comment vous pourriez l'utiliser :

import (
    "log"
    "database/sql"

    _ "github.com/go-sql-driver/mysql"
)

Pour importer un package uniquement pour ses effets secondaires (initialisation), utilisez l'identifiant vide comme nom de package explicite.

Voir plus à https://golang.org/ref/spec#Import_declarations

32voto

Volker Points 6807

Le truc var _ = fmt.Printf est utile ici.

30voto

dtzvi Points 325

J'ai le même problème. Je comprends la raison pour laquelle ils ont mis en place le langage pour interdire les importations et variables inutilisées, mais personnellement, je trouve cette fonctionnalité agaçante lorsque j'écris mon code. Pour contourner cela, j'ai modifié mon compilateur pour permettre des drapeaux facultatifs autorisant les variables et importations inutilisées dans mon code.

Si vous êtes intéressé, vous pouvez voir cela sur https://github.com/dtnewman/modified_golang_compiler.

Maintenant, je peux simplement exécuter du code avec une commande telle que go run -gcflags '-unused_pkgs' test.go et il ne lancera pas ces erreurs "importation inutilisée". Si je laisse ces drapeaux dehors, il revient à la valeur par défaut de ne pas autoriser les importations inutilisées.

Cela n'a nécessité que quelques changements simples. Les puristes de Go ne seront probablement pas satisfaits de ces changements, car il y a de bonnes raisons de ne pas autoriser les variables/importations inutilisées, mais personnellement, je suis d'accord avec vous que ce problème rend beaucoup moins agréable de coder en Go, c'est pourquoi j'ai apporté ces modifications à mon compilateur.

21voto

mdwhatcott Points 1088

Utilisez goimports. C'est essentiellement un fork de gofmt, écrit par Brad Fitzpatrick et maintenant inclus dans les packages des outils go. Vous pouvez configurer votre éditeur pour l'exécuter à chaque fois que vous enregistrez un fichier. Vous n'aurez plus jamais à vous soucier de ce problème.

7voto

topskip Points 2665

Utilisez if false { ... } pour mettre en commentaires une partie de code. Le code à l'intérieur des accolades doit être correct du point de vue syntaxique, mais peut être un code non significatif par ailleurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X