Sobes.tech
Junior — Middle

Pouvez-vous expliquer le principe de fonctionnement du hachage dans la mise en œuvre d'une carte (Map) ?

sobes.tech IA

Réponse de l'IA

En Go, une carte (map) est implémentée comme une table de hachage, où les clés sont transformées en valeurs de hachage à l'aide d'une fonction de hachage. Le principe de fonctionnement du hachage dans une carte est le suivant :

  1. Pour une clé donnée, un code de hachage est calculé — une valeur numérique qui dépend du contenu de la clé.
  2. Le code de hachage est utilisé pour déterminer l'indice dans le tableau de buckets (paniers), où la valeur est stockée.
  3. Si plusieurs éléments se trouvent dans un bucket (collision), une recherche est effectuée via une chaîne ou un autre mécanisme de résolution des collisions.

Cela permet de trouver, d'ajouter et de supprimer rapidement des éléments par clé avec une complexité amortie d'environ O(1).

Exemple d'utilisation d'une carte en Go :

m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5

Dans cet exemple, la chaîne "apple" est hachée, et la valeur 5 est stockée dans le bucket correspondant.