Und ich kann diese Art der Variablendeklaration nicht verstehen:
_, prs := m["example"]
Was genau macht " _,
" und warum haben sie stattdessen eine solche Variable deklariert ?
prs := m["example"]
(Ich fand es als Teil von Go by Example: Maps )
prs
steht wahrscheinlich für "Gegenwart". Der Code in Ihrem Beispiel überprüft, ob ein Eintrag"example"
in derm
Karte vorhanden ist oder nicht.Antworten:
Es wird vermieden, dass alle Variablen für die Rückgabewerte deklariert werden müssen.
Es wird als leere Kennung bezeichnet .
Wie in:
(Der andere
_
Anwendungsfall ist für den Import )Da der Rückgabewert verworfen wird, ist es hilfreich, wenn Sie nur einen der zurückgegebenen Werte überprüfen möchten, wie in " So testen Sie die Schlüsselexistenz in einer Karte " in " Effective Go, map " gezeigt:
Wie Jsor in den Kommentaren hinzufügt :
So können Sie es mit Test kombinieren:
Sie würden es auch in Schleife finden:
quelle
Mit dem Go-Compiler können Sie keine Variablen erstellen, die Sie nie verwenden.
Der obige Code gibt die Fehlermeldung "Ich habe deklariert und nicht verwendet" zurück.
Da wir i nicht in unserer Schleife verwenden, müssen wir es folgendermaßen ändern:
quelle
_
ist die leere Kennung. Das heißt, der Wert, der zugewiesen werden soll, wird verworfen.Hier ist es der Wert von
example
Schlüssels verworfen. Die zweite Zeile des Codes würde die verwerfen Anwesenheit boolean und den Wert inprs
.Um nur das Vorhandensein in der Karte zu überprüfen, können Sie den Wert verwerfen. Dies kann verwendet werden, um eine Karte als Set zu verwenden.
quelle
Ausschnitt aus:
Die Go-Programmiersprache (Addison-Wesley Professional Computing Series)
Brian W. Kernighan
Dieses Material ist möglicherweise urheberrechtlich geschützt.
quelle
Es wird als leere Kennung bezeichnet und hilft in Fällen, in denen Sie den Wert, der zurückgegeben werden soll, verwerfen und nicht darauf verweisen möchten
Einige Orte, an denen wir es verwenden:
quelle
Der beste Anwendungsfall für die nicht verwendete Variable ist die Situation, in der Sie nur eine Teilausgabe benötigen. Im folgenden Beispiel müssen wir nur den Wert (staatliche Bevölkerung) drucken.
quelle
Grundsätzlich
_,
als leere Kennung bekannt. In GO können wir keine Variablen haben, die nicht verwendet werden.Wenn Sie beispielsweise ein Array durchlaufen, wenn Sie value: = range verwenden, möchten Sie keinen i- Wert zum Iterieren. Wenn Sie jedoch den i-Wert weglassen, wird ein Fehler zurückgegeben. Aber wenn Sie i deklarieren und es nicht verwenden, wird auch ein Fehler zurückgegeben.
Daher ist dies der Ort, an dem wir verwenden müssen
_,
.Es wird auch verwendet, wenn Sie den Rückgabewert einer Funktion in Zukunft nicht mehr möchten.
quelle
Wenn Sie aus anderen Programmiersprachen kommen, ist es möglicherweise etwas schwierig, sich daran zu gewöhnen. Dies führt jedoch zu einem saubereren Code. Mit a
_
sagen wir also, dass wir wissen, dass es dort eine Variable gibt, aber wir wollen sie nicht verwenden und sagen dem Compiler, der mich nicht darüber beschwert. :) :)quelle