Maison  >  Article  >  développement back-end  >  Un guide concis pour analyser en profondeur la structure des données cartographiques dans Golang

Un guide concis pour analyser en profondeur la structure des données cartographiques dans Golang

WBOY
WBOYoriginal
2024-01-16 10:12:101293parcourir

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

  1. Les clés de carte doivent être d'un type qui prend en charge les opérateurs "==" et "!=", tels que int, float, string, bool, etc. À l'exception des trois cas suivants, les types dans Golang peuvent être utilisés comme clés de carte :

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 {
}
  1. Map est un type référence, et sa valeur zéro est nulle. Si vous essayez d'opérer sur une valeur nulle, une panique d'exécution se produira.
  2. Utilisez la fonction make pour initialiser la Map :
students := make(map[string]int)
  1. Ajoutez ou modifiez des éléments à la Map :
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é.

  1. Supprimer des éléments de la carte :
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.

  1. Déterminez si une certaine clé existe dans la Map :
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.

  1. Parcourir les clés de la carte :
for key := range students {
    fmt.Println(key)
}
  1. Parcourir les valeurs de la carte :
for _, value := range students {
    fmt.Println(value)
}
  1. Parcourir les paires clé-valeur de la carte :
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn