Map Key Basics
Comprendre les cartes (maps) en Go (Golang)
En Go (Golang), une carte (map) est une structure de données puissante qui vous permet de stocker des paires clé-valeur. Contrairement aux tableaux (arrays) ou aux tranches (slices), les cartes offrent un moyen de créer des collections dynamiques avec des clés uniques et des valeurs associées.
Déclaration et initialisation d'une carte (map)
Il existe plusieurs façons de créer une carte en Go (Golang) :
// Method 1: Using make() function
ages := make(map[string]int)
// Method 2: Map literal declaration
cities := map[string]string{
"USA": "New York",
"France": "Paris",
}
Caractéristiques clés
Les cartes en Go (Golang) ont plusieurs caractéristiques importantes :
Caractéristique |
Description |
Unicité des clés |
Chaque clé dans une carte doit être unique |
Types de clés |
Les clés doivent être de types comparables |
Accès aux valeurs |
Complexité temporelle constante O(1) |
Restrictions sur les types de clés
Tous les types ne peuvent pas être utilisés comme clés de carte. Les types de clés valides doivent être :
- Comparables à l'aide des opérateurs
==
et !=
- Immuables (comme les chaînes de caractères, les entiers)
- On ne peut pas utiliser des tranches (slices), des cartes (maps) ou des fonctions comme clés
Gestion de la mémoire
graph TD
A[Map Creation] --> B[Memory Allocation]
B --> C{Key-Value Pairs}
C --> D[Dynamic Resizing]
D --> E[Garbage Collection]
Les cartes en Go (Golang) sont implémentées sous forme de tables de hachage (hash tables), offrant un stockage et une récupération efficaces de paires clé-valeur. LabEx recommande de comprendre leur mécanisme interne pour une utilisation optimale.
Exemple : Opérations de base sur une carte (map)
func main() {
// Creating a map
scores := map[string]int{
"Alice": 95,
"Bob": 88,
}
// Adding a new key-value pair
scores["Charlie"] = 92
// Checking key existence
value, exists := scores["Alice"]
}