Ich lerne Go, aber ich finde es etwas ärgerlich, dass ich beim Kompilieren keine Variablen oder Pakete unbenutzt lassen sollte.
Das verlangsamt mich wirklich ziemlich. Zum Beispiel wollte ich nur ein neues Paket deklarieren und planen, es später zu verwenden, oder einfach einen Befehl zum Testen auskommentieren. Ich bekomme immer den Fehler und muss all diese Verwendungen kommentieren.
Gibt es eine Möglichkeit, diese Art des Eincheckens in Go zu vermeiden?
Antworten:
Dieser Fehler soll Sie dazu zwingen, besseren Code zu schreiben und alles zu verwenden, was Sie deklarieren oder importieren. Dies erleichtert das Lesen von Code, der von anderen Personen geschrieben wurde (Sie sind immer sicher, dass alle deklarierten Variablen verwendet werden), und vermeidet möglicherweise toten Code.
Wenn Sie diesen Fehler jedoch wirklich überspringen möchten, können Sie den leeren Bezeichner (
_
) verwenden:wird
Wie von kostix in den Kommentaren unten gesagt, finden Sie die offizielle Position des Go-Teams in den FAQ :
quelle
Sie können hierfür eine einfache "Nullfunktion" verwenden, zum Beispiel:
Was Sie so verwenden können:
Es gibt auch ein Paket dafür, damit Sie die
Use
Funktion nicht jedes Mal definieren müssen:quelle
Laut FAQ :
Ich stimme dem aus verschiedenen Gründen nicht unbedingt zu, die es nicht wert sind, darauf einzugehen. Es ist, was es ist, und es wird sich in naher Zukunft wahrscheinlich nicht ändern.
Für Pakete gibt es das
goimports
Tool, das fehlende Pakete automatisch hinzufügt und nicht verwendete entfernt. Beispielsweise:Sie sollten in der Lage sein, dies von jedem halbwegs anständigen Editor aus auszuführen - zum Beispiel für Vim:
Auf der
goimports
Seite werden einige Befehle für andere Editoren aufgelistet. Normalerweise legen Sie fest, dass sie automatisch ausgeführt werden, wenn Sie den Puffer auf der Festplatte speichern.Beachten Sie, dass
goimports
auch ausgeführt wirdgofmt
.Wie bereits erwähnt, ist es für Variablen am einfachsten, sie (vorübergehend) zuzuweisen
_
:quelle
Ein Winkel, der bisher nicht erwähnt wurde, sind Werkzeugsätze, die zum Bearbeiten des Codes verwendet werden.
Die Verwendung von Visual Studio Code zusammen mit der aufgerufenen Erweiterung von lukehoban bewirkt
Go
eine gewisse automatische Magie für Sie. Die Go - Erweiterung automatisch läuftgofmt
,golint
etc, und entfernt und fügtimport
Einträge . Zumindest dieser Teil ist jetzt automatisch.Ich gebe zu, dass es nicht 100% der Lösung der Frage ist, aber dennoch nützlich genug.
quelle
Für den Fall, dass andere Schwierigkeiten haben, dies zu verstehen, könnte es hilfreich sein, dies in sehr einfachen Worten zu erklären. Wenn Sie eine Variable haben, die Sie nicht verwenden, z. B. eine Funktion, für die Sie den Aufruf auskommentiert haben (ein häufiger Anwendungsfall):
Sie können eine nutzlose / leeren Variable an die Funktion zuweisen , so dass es nicht mehr ungenutzt :
quelle