var mitarbeiterRaum = map[string]string{
"Müller": "123a",
"Maier": "334",
"Schmidt": "123a",
}
Maps
Maps sind ungeordnete Schlüssel-Wert-Paare. Zu jedem Schlüssel gibt es genau ein Wert. Als Beispiel für eine Map ist die Abbildung (engl.: to map = abbilden) von Mitarbeitern in einer Firma zu einer Raumnummer. Jeder Mitarbeiter hat seinen Arbeitsplatz in einem Raum, den er oder sie sich gegebenenfalls mit Kollegen teilt.
Abbildung (Map) von Typ
string
auf string
Es besteht, wie gesagt, keine Ordnung innerhalb einer Abbildung, im Sinne von »das ist das erste Element in der Map«. Wenn man über eine Map iteriert, ist die Reihenfolge mehr oder weniger zufällig gegeben:
package main
import "fmt"
func main() {
var mitarbeiterRaum = map[string]string{
"Müller": "123a",
"Maier": "334",
"Schmidt": "123a",
}
for name, raum := range mitarbeiterRaum {
fmt.Printf("Herr/Frau %s arbeitet im Raum %s.\n", name, raum)
}
}
könnte folgende Ausgabereihenfolge haben:
Herr/Frau Müller arbeitet im Raum 123a.
Herr/Frau Schmidt arbeitet im Raum 123a.
Herr/Frau Maier arbeitet im Raum 334.
Um zu überprüfen, ob ein Eintrag in dem Verzeichnis vorhanden ist, kann man einen optionalen Parameter benutzen:
package main
import "fmt"
func main() {
var mitarbeiterRaum = map[string]string{
"Müller": "123a",
"Maier": "334",
"Schmidt": "123a",
}
// wird eine zweite Variable (hier: ok) mit angegeben, ist es ein
// bool-Wert, der angibt, ob der Eintrag gefunden wurde.
if raumnummer, ok := mitarbeiterRaum["Becker"]; ok {
fmt.Println("Frau Becker hat die Raumnummer", raumnummer)
} else {
fmt.Println("Frau Becker ist auf einem Außentermin")
}
}