Was ist "_," (Unterstrich Komma) in ein Go-Erklärung?
Und ich kann nicht scheinen zu verstehen, dass diese Art der Deklaration von Variablen:
_, prs := m["example"]
Was genau ist "_,
" zu tun und warum haben Sie deklariert eine variable wie diese anstelle von
prs := m["example"]
(Ich fand es als Teil Gehen Sie mit dem Beispiel: Karten)
- Für die Zukunft Sprache Fragen, bitte haben Sie einen Blick auf die spec first. Es sollte alle Ihre Fragen beantworten.
- Kommentar:
prs
steht wahrscheinlich für "anwesend". Der code in deinem Beispiel ist die Prüfung auf das Vorhandensein oder fehlen eines Eintrags für"example"
imm
Karte. - Ja, ich hatte einen Blick gibt es bisher nicht, aber da ich nicht wusste, den Namen der Funktion, die ich es nicht finden. Auch finde ich die offiziellen Spezifikationen für die Programmierung Sprachen, die nicht sehr pädagogisch und eher lernen durch Beispiel.
- Einmal habe ich die Erklärung weiter unten habe ich herausgefunden, es ist Bedeutung, aber erwähnenswert, wenn jemand anderes die gleiche Frage!
- Mögliche Duplikate von was Bedeutet der Unterstrich (leere id) in Go
- Ich weiß es nicht. Die meisten der Fragen, die SO wahrscheinlich Antworten irgendwo geben. Eine Schwelle existiert, unterhalb dessen eine Frage sollte vermutlich nicht gefragt, aber ich glaube nicht, dass diese Frage fällt unter, die.
_,
ist keine spezielle syntax. Es ist der name der variable_
(was besonderes ist; siehe stackoverflow.com/questions/24357028/...), gefolgt von einem,
._, x := blah
ist ähnlichfoo, x := blah
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sich vermeiden, deklarieren Sie alle Variablen für die Werte zurückgibt.
Es heißt leer identifier.
In:
(die andere '
_
' use-case ist für den import)Da es verwirft den Rückgabewert, ist es hilfreich, wenn Sie überprüfen wollen, nur einer der Werte zurückgegeben, wie in "Wie man die test-Taste Existenz in einer Karte?" gezeigt, in "Effektiv Gehen, anzeigen":
Als Jsor fügt in den Kommentaren:
Dass können Sie kombinieren es mit test:
Hätte man es auch in der Schleife:
Den Go compiler nicht zulassen, dass Sie Variablen erstellen, die Sie nie benutzen.
Den oben genannten code eine Fehlermeldung zurück, "erklärte ich und nicht verwendet".
Da wir nicht verwenden, die ich innerhalb unserer Schleife müssen wir es ändern, um diese:
_
ist der leere Bezeichner. Was bedeutet der Wert zugewiesen werden soll, wird verworfen.Hier ist es der Wert der
example
Schlüssel, der verworfen wird. Die zweite Zeile code verwerfen möchten die Präsenz boolean und speichert den Wert inprs
.So, um nur zu überprüfen, die Anwesenheit in der Karte, können Sie verwerfen Sie den Wert. Dies kann verwendet werden, um eine Karte als ein set.
Heißt es den leeren Bezeichner, und es hilft in den Fällen, wo Sie möchten, verwerfen Sie den Wert, der zurückgegeben wird und es nicht referenzieren
Einige Orte, wo wir es verwenden:
Zukunft
mit
Auszug Aus:
The Go Programming Language (Addison-Wesley Professional Computing Series)
Brian W. Kernighan
Diesem material können urheberrechtlich geschützt sein.
Grundsätzlich
_,
bekannt als die leeren Bezeichner. Im GEHEN können wir nicht, haben Variablen, die nicht verwendet werden.Als eine Instanz, wenn Sie Durchlaufen ein array, wenn Sie mit Wert := range Sie nicht wollen, eine ich Wert für die Iteration. Aber wenn Sie die weglassen der i-Wert wird ein Fehler zurückgegeben. Aber wenn Sie erklären, und ich habe es nicht verwenden, es wird ebenfalls ein Fehler zurückgegeben.
Daher, das ist der Ort, wo wir mit
_,
.Es ist auch verwendet, wenn Sie nicht möchten, dass eine Funktion den Rückgabewert in die Zukunft.
Wenn Sie waren aus anderen Programmiersprachen ist dies vielleicht das Gefühl, etwas schwer zu gewöhnen. Aber dies führt zu mehr sauberer code. So durch die Nutzung einer
_
wir sagen, wir wissen, dass es eine variable gibt, aber wir wollen nicht, es zu benutzen und zu sagen, der compiler beschwert sich nicht, mich über es. 🙂