Le Map sono la struttura built-in di Go per gli Array associativi (in altri linguaggi si possono trovare strutture simili sotto il nome di hash table o dizionari). |
|
package main
|
|
import "fmt"
|
|
func main() {
|
|
Per creare una nuova map vuota, utilizza
la funzione built-in |
m := make(map[string]int)
|
Puoi impostare i valori della map utilizzando la sintassi
tipica |
m["k1"] = 7
m["k2"] = 13
|
Passare la map ad una funzione di stampa (tipo |
fmt.Println("map:", m)
|
Puoi ottenere il valore di una chiave con |
v1 := m["k1"]
fmt.Println("v1: ", v1)
|
La funzione built-in |
fmt.Println("len:", len(m))
|
La funzione built-in |
delete(m, "k2")
fmt.Println("map:", m)
|
Quando si accede ad una map è possibile controllare
il secondo valore restituito opzionale che indica
la presenza o meno di una chiave all’interno di una map.
Questo parametro può essere utilizzato per discernere
il caso in cui una chiave non è presente dal caso in cui
una chiave ha assegnato lo zero-value (ad esempio |
_, prs := m["k2"]
fmt.Println("prs:", prs)
|
È anche possibile dichiarare ed inizializzare una nuova map con la sintassi seguente |
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
}
|
Nota che le map vengono mostrate nel formato
|
$ go run maps.go
map: map[k1:7 k2:13]
v1: 7
len: 2
map: map[k1:7]
prs: false
map: map[foo:1 bar:2]
|
Prossimo esempio: Range.