445 Stimmen

Wie man den lästigen Fehler "deklariert und nicht verwendet" vermeidet

Ich lerne Go, aber ich finde es ein bisschen ärgerlich, dass ich beim Kompilieren keine ungenutzten Variablen oder Pakete hinterlassen sollte.

Dies bremst mich wirklich ziemlich aus. Zum Beispiel wollte ich nur ein neues Paket deklarieren und plante, es später zu verwenden, oder nur einige Befehle auskommentieren, um sie zu testen. Ich bekomme immer den Fehler und muss alle diese Verwendungen auskommentieren.

Gibt es einen Weg, um diese Art von Überprüfung in Go zu vermeiden?

10voto

miltonb Punkte 6099

Ein bisher nicht erwähnter Aspekt sind die Werkzeugsätze, die zum Bearbeiten des Codes verwendet werden.

Die Verwendung von Visual Studio Code zusammen mit der Erweiterung von lukehoban namens Go erledigt einige Automatismen für Sie. Die Go-Erweiterung führt automatisch gofmt, golint usw. aus und entfernt und fügt import-Einträge hinzu. Zumindest dieser Teil ist jetzt automatisch.

Ich gebe zu, dass dies nicht 100% der Lösung für die Frage ist, aber dennoch nützlich genug.

9voto

Petrus Theron Punkte 26281

Soweit ich das beurteilen kann, sehen diese Zeilen im Go-Compiler aus wie diejenigen, die auskommentiert werden sollten. Du solltest in der Lage sein, deine eigene Toolchain zu erstellen, die diese kontraproduktiven Warnungen ignoriert.

7voto

maxime Punkte 1993

Ich bin auf dieses Problem gestoßen, als ich den Versand einer E-Mail vorübergehend deaktivieren wollte, während ich an einem anderen Teil des Codes gearbeitet habe.

Das Kommentieren der Verwendung des Dienstes löste viele Kaskadenfehler aus, also habe ich anstelle des Kommentierens eine Bedingung verwendet

if false {
    // Technisch gesehen kann svc immer noch verwendet werden, also kein Schreien
    _, err = svc.SendRawEmail(input) 
    Check(err)
}

2voto

baz Punkte 1049

Sie können auch x = x machen, als Anfänger Go-Programmierer muss ich zugeben, dass dies die ärgerlichste Sprache ist, die ich gesehen habe:)

0voto

yingshao xo Punkte 503

Ich habe gerade einen neuen Golang-Compiler erstellt, der standardmäßig alle Warnungen für ungenutzte Variablen und Warnungen für ungenutzte Imports einfach ignoriert.

https://github.com/yingshaoxo/go/releases/tag/v1.21

Es funktioniert sowohl für go run als auch für go build

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X