Wie man in Go über eine ganze Map iteriert
Hash-Tabellen sind eine der leistungsfähigsten und vielseitigsten Datenstrukturen in der Informatik. Es gibt eine Vielzahl von Hash-Tabellen-Implementierungen für verschiedene Programmiersprachen. In Go sind Hash-Tabellen als eingebaute map
-Datentypen implementiert. Kurz gesagt ist eine map
eine Sammlung von Schlüssel-Wert-Paaren
. Wir verwenden die Anweisung for...range
in Go, um eine Schleife über die gesamten Schlüssel
einer map
zu bilden, indem wir jeweils einen Schlüssel
auf einmal abrufen.
Deklarieren und Initialisieren von Maps
Eine map
kann mit der folgenden Syntax deklariert werden:
var map_name map[KeyType]ValueType
Wobei KeyType
jeder vergleichbare Datentyp
und ValueType
auch jeder Datentyp einschließlich map
selbst ist.
package main
import "fmt"
func main() {
map_1 := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
fmt.Println(map_1)
}
Ausgabe:
map[0:Alok 1:Reman 2:Riken 3:Rudra]
Maps
können auch mit der eingebauten Funktion make()
erzeugt werden.
package main
import "fmt"
func main() {
var map_2 = make(map[int]string)
map_2[0] = "Alok"
map_2[1] = "Reman"
map_2[2] = "Riken"
map_2[3] = "Rudra"
fmt.Println(map_2)
}
Ausgabe:
map[0:Alok 1:Reman 2:Riken 3:Rudra]
Iterieren über eine Map in Go
Wir können über die gesamte map
iterieren, indem wir for...range
-Anweisungen verwenden. Die Iterationsreihenfolge über eine map
ist jedoch nicht festgelegt, da die map
eine ungeordnete Sammlung ist.
Iterieren Sie über alle Schlüssel und Werte einer map
in Go
package main
import "fmt"
func main() {
map_1 := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
for k, v := range map_1 {
fmt.Printf("Key:%v Value: %s\n", k, v)
}
}
Ausgabe:
Key:0 Value: Alok
Key:1 Value: Reman
Key:2 Value: Riken
Key:3 Value: Rudra
Wenn Sie jedoch einen anderen Datentyp für Schlüssel
oder Werte
der map
verwenden, dann müssen Sie das Format für diesen speziellen Datentyp beim Drucken von Schlüsseln
oder Werten
angeben. Ein Beispiel für eine map
mit dem Datentyp string
als Schlüssel
ist unten dargestellt:
package main
import "fmt"
func main() {
map_1 := map[string]string{
"Giri ": "Alok",
"Nembang ": "Reman",
"Maharjan": "Riken",
"Jha ": "Rudra",
}
for k, v := range map_1 {
fmt.Printf("Key:%v Value: %s\n", k, v)
}
}
Ausgabe:
Key:Giri Value: Alok
Key:Nembang Value: Reman
Key:Maharjan Value: Riken
Key:Jha Value: Rudra
Iterieren Sie nur über Schlüssel in Go map
package main
import "fmt"
func main() {
map_1 := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
for k := range map_1 {
fmt.Printf("Key:%v\n", k)
}
}
Ausgabe:
Key:0
Key:1
Key:2
Key:3
Iteriere über Werte nur in Go map
package main
import "fmt"
func main() {
map_1 := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
for _, v := range map_1 {
fmt.Printf("Value:%s\n", v)
}
}
Ausgabe:
Value:Riken
Value:Rudra
Value:Alok
Value:Reman
Die Reihenfolge, in der die “Schlüssel”- und Wert
-Paare in der obigen Ausgabe ausgegeben werden, und die Reihenfolge, in der die “Schlüssel-Wert”-Paare auf Ihrer Seite ausgegeben werden, kann unterschiedlich sein, da die map
eine ungeordnete Sammlung ist. Sie brauchen sich also darüber keine Sorgen zu machen.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn