DEV Community

Maxime Guilbert
Maxime Guilbert

Posted on

2

GoLang - Comment utiliser des maps

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

J'espère que cela vous aidera! 🍺

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay