Quand on débute en Go et qu'on a déjà développé dans un autre langage, on peut être perturbé sur la déclaration des maps en Go.
Déclaration
Le type d'objet map
n'existe pas en Go. Il existe par contre un mot clé map
qui permet de créer un type d'objet basé sur les maps avec la structure suivante :
map[]
Exemples
map[string]string
Par exemple, pour créer une map qui permettrait de lier une chaine de caractère en tant que clé avec un chiffre vous utiliseriez : map[string]int
Pour une map permettant de lier une rune avec un objet book
, on aurait : map[rune]book
Détail sur le typage
Vis-à-vis de ce qui a été dit plus tôt, vu que le type d'objet map n'existe pas, les types d'objets créé à partir de map ne sont les même que si ils ont le même type de clé et d'objet.
map[rune]book != map[string]int
map[rune]book != map[string]book
map[rune]book != map[rune]int
map[rune]book == map[rune]book
Utilisation
m := map[string]string{} // Déclarer une map
m["p"] = 3 // Ajouter un nouvel élément dans la map
m["p"] = 4 // Mise à jour d'un élément
fmt.Println(m) // Afficher la map: "map[p:4]"
v := m["p"] // Récupérer une valeur: v == 4
v = m["p2"] // Valeur non trouvée: v == 0 (zero)
_, found := m["p"] // found == true
_, found = m["p2"] // found == false
if x, found := m["p"]; found {
fmt.Println(x)
} // Affiche "4"
delete(m, "p") // Supprimer un élément dans la map
J'espère que cela vous aidera! 🍺
Top comments (0)