Les maps sont un type type de donnée associatif (parfois appelé hashes ou dicts dans d’autres langages). |
|
package main
|
|
import "fmt"
|
|
func main() {
|
|
Pour créer une map vide, on utilise la builtin
|
m := make(map[string]int)
|
On affecte les paires clé/valeur avec la syntaxe
|
m["k1"] = 7
m["k2"] = 13
|
Afficher une map via |
fmt.Println("map:", m)
|
On récupère une valeur avec |
v1 := m["k1"]
fmt.Println("v1: ", v1)
|
La builtin |
fmt.Println("len:", len(m))
|
La builtin |
delete(m, "k2")
fmt.Println("map:", m)
|
La seconde valeur de retour optionnelle lorsque
l’on récupère une valeur dans une map indique si
la clé était présente. Cela peut être utilisé pour
lever l’ambiguité entre des clés manquantes et des
clés de valeur nulle, comme |
_, prs := m["k2"]
fmt.Println("prs:", prs)
|
On peut aussi déclarer et initialiser une nouvelle maps sur la même ligne avec cette syntaxe. |
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
}
|
A noter ques les maps apparaissent sous la forme
|
|
$ 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]
|
Exemple suivant: Range.