Golang -Karte

Golang -Karte
Karten sind in den meisten Programmiersprachen eine grundlegende Datenstruktur. Karten beziehen sich auf eine Sammlung von Schlüsselwertpaaren, die zum Speichern ungeordneter Daten verwendet werden. In anderen Programmiersprachen werden Karten als Wörterbücher, Hash, assoziatives Array, Hash -Karte oder ungeordnete Karten bezeichnet.

Unabhängig vom Namen bieten Karten vielseitig, schnelle und effiziente Daten -Looks, Updates und Löschungen mit dem Satz eindeutiger Schlüssel.

Der Hauptaugenmerk dieses Tutorials liegt darin, Sie durch das Erstellen und Verwenden von Karten in der Go -Programmiersprache zu führen.

Machen Sie eine Karte erstellen

Es gibt zwei Möglichkeiten, eine Karte in der Go -Programmiersprache zu erstellen.

Karte wörtlich

Die erste Methode besteht darin, eine Keyword -Karte zu verwenden, gefolgt vom Datentyp des Schlüssels (in quadratischen Klammern eingeschlossen) und dem Datentyp der Werte.

Sobald Sie die Karte definiert haben, können Sie den Satz von Schlüsselwertpaaren in ein Paar lockiger Klammern einfügen.

Die Syntax ist wie gezeigt:

Karte [Schlüssel] Wert
Schlüsselwert

Karten sind sehr nützlich, um verwandte Daten wie Benutzerinformationen zu speichern. Beispielsweise erstellt der folgende Code eine Karte, in der Benutzerinformationen gespeichert werden können.

user_info: = map [string] string
"ID": "1",
"Name": "Jonh Doe",
"Abteilung": "Spieleentwickler",
"Gehalt": "140.000 US -Dollar",
"Land": "Bulgarien",

Beachten Sie, dass die Schlüsselwertpaare der Karte in den lockigen Klammern eingeschlossen sind. Der Wert links vom Dickdarm repräsentiert den Schlüssel, während der Wert rechts den zugehörigen Wert darstellt.

Im obigen Beispiel formatieren wir die Schlüsselwertpaare als JSON für eine einfachere Lesbarkeit. Sie können jedoch einen Einzeiler als:

user_info: = map [string] string
"ID": "1", "Name": "Jonh Doe", "Abteilung": "Spieleentwickler", "Gehalt": "140.000 $", "Land": "Bulgarien",

Stellen Sie sicher, dass Sie jedes Schlüsselwertpaar mit einem Komma trennen.

Funktioneller Ansatz

Die zweite Methode, mit der Sie eine Karte in GO erstellen können, ist die Make -Funktion. Dies ist eine integrierte Funktion, mit der Sie den Typ der Karte zum Erstellen übergeben können. Es gibt eine initialisierte Karte zurück. Die Syntax ist wie unten gezeigt:

make (map [key_type] value_type)

Die Funktion gibt eine leere Karte zurück.

Sie können wie bei anderen Programmiersprachen eine Karte einer Variablen zuweisen, wie in den obigen Beispielen gezeigt.

Um die Schlüsselwerte im Array anzuzeigen, können Sie die FMT verwenden.Println -Methode, wie im folgenden Beispiel gezeigt:

Paket Main
importieren "fmt"
func main ()
user_info: = map [string] string
"ID": "1", "Name": "Jonh Doe", "Abteilung": "Spieleentwickler", "Gehalt": "140.000 $", "Land": "Bulgarien",

fmt.Println ("Karten:", user_info)

Der obige Code sollte die Ausgabe wie gezeigt zurückgeben:

::Ausgang
Karten: Karte [Land: Bulgarien Abteilung: Spieleentwickler ID: 1 Name: Jonh Doe Gehalt: $ 140.000]

Zugriff auf Kartenelemente

Um den Wert in einer Karte zu erhalten, können Sie den eindeutigen Schlüssel verwenden. Golang sollte den mit dem angegebenen Schlüssel zugeordneten Wert zurückgeben.

Zum Beispiel:

fmt.Println (user_info ["name"])

Der obige Snippet sollte den Wert zurückgeben, der dem Schlüssel „Name“ aus der Karte user_info zugeordnet ist.

Der Ausgang ist wie gezeigt “

::Ausgang
Jonh Doe

Da jeder Schlüssel in einer Karte eindeutig ist, sollte der obige Code immer einen einzelnen Wert zurückgeben, der einem Schlüssel zugeordnet ist, falls vorhanden.

Daher ist die Verwendung von Karten für verwandte Informationen effizient.

Karte Iteration

Die nächste Frage kommt: Wie können Sie die Elemente in einer Karte iterieren? Im Gegensatz zu anderen Programmiersprachen, die integrierte Funktionen zum Abholen von Schlüssel und Werten bereitstellen, ist GO nicht.

Sie können jedoch mit dem Bereich Operator über eine Karte iterieren.

Nehmen wir die Beispiele für user_info -Karte, die wir zuvor erstellt haben. Wir können den Bereichsoperator verwenden, um die Schlüssel und Werte der Karte zu iterieren, wie im folgenden Beispielcode gezeigt:

für k, v: = range user_info
fmt.Printf (" %q -> %q \ n", k, v)

Im obigen Code iterieren Sie die Elemente und geben jeden Schlüssel und den zugeordneten Wert zurück. Beachten Sie, dass GO die Variablen mit dem festgelegten Typ erstellt. Zum Beispiel sind sowohl der Schlüssel als auch der Wert Strings; Daher können wir das %Q -Formatierer verwenden, um seinen Wert mit der Printf -Funktion zu drucken.

Die resultierende Ausgabe ist wie gezeigt:

"ID" -> "1"
"Name" -> "Jonh Doe"
"Abteilung" -> "Spieleentwickler"
"Gehalt" -> "140.000 $"
"Land" -> "Bulgarien"

Was passiert, wenn Sie nur auf die Schlüssel zugreifen müssen? Sie können eine Variable deklarieren, um die Schlüssel zu speichern und dann den Bereich Operator in einem solchen Szenario zu verwenden.

Betrachten Sie das unten gezeigte Beispiel:

Schlüssel: = [] String
für k: = range user_info
Keys = append (Schlüssel, k)

fmt.Printf ("%q", Schlüssel)

Im obigen Beispiel beginnen wir zunächst eine Scheibe, um die Schlüssel aus der Karte zu speichern. Anschließend verwenden wir den Bereichsbetreiber, um die Schlüssel zu iterieren und jede Taste an die Scheibe anzuhängen.

Schließlich drucken wir die Schlüssel mit der Printf -Methode aus. Die resultierende Ausgabe ist wie gezeigt:

["ID" "Name" "Abteilung" "Gehalt" "Land"]

Sie wenden die gleiche Technik oben an, um die Werte einer Karte zu erhalten.

Kartenlänge

In Golang können Sie mit der Len -Methode die Länge einer Karte erhalten. Dies gibt die Anzahl der Elemente auf der Karte zurück.

Zum Beispiel:

fmt.Println (len (user_info))

Anzahl der Elemente auf der Karte lautet:

5

Fügen Sie Tasten und Werte hinzu, aktualisieren, löschen

In Go sind Karten veränderlich. Dies bedeutet, dass Sie vorhandene Elemente in der Karte hinzufügen, löschen oder aktualisieren können.

Lassen Sie uns einige Beispiele für die Durchführung solcher Operationen ansehen.

Füge neuen Gegenstand hinzu

Um einer Karte ein neues Element hinzuzufügen, verweisen Sie auf den Namen der Karte, gefolgt von der Schlüssel in quadratischen Klammern und einem einzigen Sing (=), um einen neuen Wert zuzuweisen.

Die Syntax ist wie gezeigt:

MAP_NAME [Schlüssel] = Wert

Fügen wir der Karte user_info einen neuen Schlüssel hinzu, wie im folgenden Beispiel gezeigt:

user_info ["dob"] = "06/06/1995"

Im obigen Beispiel fügen wir der Karte user_info ein neues Element mit dem Namen "Dob" hinzu. Denken Sie daran, dass Elemente auf der Karte ungeordnet sind. Das Hinzufügen eines neuen Elements bedeutet daher nicht, dass es als letzter oder erstes Element auf der Karte angezeigt wird.

Aktualisieren Sie einen Artikel

Angenommen, wir müssen eine Information über den Benutzer ändern. Angenommen, der Benutzer hat eine Erhöhung (yay!), und wir müssen die Informationen aktualisieren.

Wir können eine ähnliche Syntax wie das Hinzufügen eines neuen Schlüssels verwenden. Wir verweisen jedoch in diesem Fall auf einen vorhandenen Schlüssel in der Karte.

Ein Beispiel ist wie gezeigt:

user_info ["Gehalt"] = "$ 160.000"

Der oben genannte Code sollte den Wert des „Gehaltschlüssels“ auf den neuen angegebenen Wert ändern.

Die resultierende Ausgabe ist wie gezeigt:

fmt.Println (user_info)

Der Ausgang ist wie gezeigt:

[Land: Bulgarien Abteilung: Spieleentwickler Dob: 06/06/1995 ID: 1 Name: Jonh Doe Gehalt: $ 160.000]

Beachten Sie, dass der neue Wert des Gehaltschlüssels aktualisiert wird, um die neuen Daten widerzuspiegeln.

Tipp: Eine bessere Möglichkeit, darüber nachzudenken, ist, wenn das Element existiert, den Wert aktualisieren. Ansonsten erstellen Sie ein neues Element.

Einen Artikel löschen

Mit Go können Sie auch ein Element aus der Karte löschen. Wir verwenden die Delete () -Methode, die zwei Argumente aufnimmt.

Das erste Argument ist der Name der Kartenvariable, unter der ein Element gelöscht werden soll, und das zweite ist der Schlüssel zum Löschen.

Schauen Sie sich das unten gezeigte Beispiel an:

löschen (user_info, "Abteilung")
fmt.Println (user_info)

Die Funktion löscht die „Abteilung“ aus der Karte user_info. Die resultierende Karte ist wie gezeigt:

Karte [Land: Bulgarien ID: 1 Name: Jonh Doe Gehalt: $ 140.000]

Eine Karte löschen

Angenommen, Sie möchten eine Karte aller vorhandenen Elemente löschen? Dazu können Sie die Werte auf eine leere Karte mit demselben Schlüssel- und Werttyp einstellen.

Zum Beispiel:

user_info = map [string] string

Das obige Beispiel sollte die Karte user_info in eine leere Karte erneut initialisieren.

Tipp: Karten sind eine ungeordnete Sammlung, und Operationen wie Iterationen führen nicht immer zur gleichen Reihenfolge der Elemente. Wenn die Reihenfolge eine Notwendigkeit ist, betrachten Sie einen anderen Datentyp.

Abschluss

In diesem Leitfaden haben wir Karten in der Go -Programmiersprache untersucht. Mit Karten können Sie eine Reihe von ungeordneten Elementen erstellen und jeden einzigartigen Schlüssel zum Zugriff auf die Elemente verwenden. Dadurch wird die Notwendigkeit von Indizes beseitigt, auf Elemente zuzugreifen.

Vielen Dank für das Lesen und kommen Sie zurück, um weitere Go -Tutorials zu erhalten.