Wie man in Go über eine ganze Map iteriert

Suraj Joshi 30 Januar 2023
  1. Deklarieren und Initialisieren von Maps
  2. Iterieren über eine Map in Go
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 avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Go Map