Maison > Article > développement back-end > Un guide concis pour analyser en profondeur la structure des données cartographiques dans Golang
Map in Golang est une structure de données très couramment utilisée, qui peut associer une clé à une valeur. Map est très utile dans de nombreuses situations, comme compter le nombre de fois qu'un mot apparaît dans un article, sauvegarder les résultats des tests des étudiants, etc.
Cet article présentera Map dans Golang d'une manière simple et facile à comprendre, y compris ce qu'est Map, les caractéristiques de Map, comment utiliser Map et parcourir Map, etc., et écrira également progressivement quelques exemples de code pour consolider les connaissances acquises.
1. Qu'est-ce que la carte ?
Map est une structure de données qui mappe les clés aux valeurs. Chaque clé ne peut apparaître qu'une seule fois et la valeur correspondante peut apparaître à plusieurs reprises. Dans Golang, l'implémentation de Map est similaire à une table de hachage, qui peut effectuer rapidement des opérations d'insertion, de suppression et de recherche.
Le format de déclaration de Map est :
map[KeyType]ValueType
où KeyType et ValueType représentent respectivement les types de clés et de valeurs. Voici un exemple :
var students map[string]int
Cet exemple définit une carte, le type de clé est une chaîne et le type de valeur est un int. Avant initialisation, cette carte est nulle et inutilisable.
2. Caractéristiques de Map
a Structure avec les deux champs suivants :
type Key struct { x, y int }
b Type de tableau, et le type d'élément prend en charge "==" Et le type de. Opérateur "!=" :
type Key [2]int
c. Type d'interface, et la valeur dynamique n'est pas nulle :
type Key interface { }
students := make(map[string]int)
students["Tom"] = 90 students["Jerry"] = 80 students["Mary"] = 95
Si vous souhaitez modifier les éléments de la Map, utilisez simplement la même touche. Si vous souhaitez ajouter une nouvelle paire clé-valeur, écrivez simplement la valeur à la position clé.
delete(students, "Jerry")
Le premier paramètre de la fonction de suppression est la carte et le deuxième paramètre est la clé à supprimer.
score, ok := students["Tom"] if ok { fmt.Printf("Tom's score is %d. ", score) } else { fmt.Println("Tom not found.") }
3. Comment utiliser Map
Regardons un exemple spécifique Supposons que nous ayons une chaîne et que nous voulions compter le nombre de fois où chaque mot y apparaît. .
package main import ( "fmt" "strings" ) func main() { str := "Go is a programming language.Golang is a updated version of the Go language. It was created by Google." // 将字符串按照空格分隔成切片 words := strings.Fields(str) // 创建一个空Map,用于统计单词出现次数 count := make(map[string]int) // 统计单词出现次数 for _, word := range words { count[word]++ } // 打印结果 for word, cnt := range count { fmt.Printf("%s: %d ", word, cnt) } }
Dans cet exemple, nous utilisons d'abord la fonction Fields du package strings pour séparer la chaîne en une tranche de chaîne, puis créons une carte vide. Ensuite, utilisez une boucle for pour utiliser chaque mot de la tranche comme clé, ajoutez 1 à la valeur correspondante, et enfin parcourez la carte et imprimez le nombre de fois que chaque mot apparaît.
4. Traverse Map
Dans Golang, vous pouvez utiliser une boucle for pour parcourir Map. Les paires clé-valeur renvoyées lors de la traversée de la carte ne sont pas ordonnées.
for key := range students { fmt.Println(key) }
for _, value := range students { fmt.Println(value) }
for key, value := range students { fmt.Printf("key: %s, value: %d ", key, value) }
Les méthodes de parcours ci-dessus peuvent être utilisées pour parcourir n'importe quelle carte, que la chaîne soit. Elle est applicable à la fois à la carte de clés et aux cartes d'autres types.
Résumé
Cet article présente principalement Map dans Golang, y compris la définition, les caractéristiques, l'utilisation et le parcours de Map, etc. Dans le développement réel, Map est une structure de données très couramment utilisée. Il est très nécessaire que les développeurs Golang maîtrisent l'utilisation de Map.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!