Maison > développement back-end > Golang > carte claire de Golang

carte claire de Golang

WBOY
Libérer: 2023-05-19 11:06:40
original
1458 Les gens l'ont consulté

Dans Golang, la carte est un type de données très important, qui nous permet de stocker et d'accéder à des données sous forme de paires clé-valeur. Cependant, lorsque nous utilisons la carte, nous rencontrerons inévitablement des situations dans lesquelles nous devrons effacer la carte. Cet article présentera trois méthodes pour effacer la carte dans Golang.

  1. Réaffecter directement une nouvelle carte

C'est la méthode la plus simple et la plus directe. Nous pouvons directement réaffecter une nouvelle carte pour écraser la carte d'origine, effaçant ainsi toutes les paires clé-valeur. L'exemple de code est le suivant :

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2}
    fmt.Println("Before clearing:", m)

    m = make(map[string]int)
    fmt.Println("After clearing:", m)
}
Copier après la connexion

Le résultat de sortie est le suivant :

Before clearing: map[a:1 b:2]
After clearing: map[]
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette méthode est plus adaptée aux cartes avec moins de données, car pour les cartes avec de plus grandes quantités de données, une réallocation est nécessaire. Une nouvelle carte entraînera une allocation de mémoire et un garbage collection très coûteux.

  1. Utilisez une boucle for pour supprimer les paires clé-valeur

Une autre façon d'effacer la carte consiste à utiliser une boucle for pour supprimer toutes les clés -paires de valeurs. Par rapport à la réaffectation directe d’une nouvelle carte, cette méthode est plus adaptée aux cartes contenant de grandes quantités de données. L'exemple de code est le suivant :

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2}
    fmt.Println("Before clearing:", m)

    for k := range m {
        delete(m, k)
    }

    fmt.Println("After clearing:", m)
}
Copier après la connexion

Le résultat est le suivant :

Before clearing: map[a:1 b:2]
After clearing: map[]
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette méthode utilise une boucle for pour parcourir toutes les clés de la carte et les supprimer à l'aide de la fonction de suppression. Mais il faut noter que lors du processus de parcours de la carte, il faut utiliser le mot-clé range pour éviter de modifier la carte parcourue. Dans le cas contraire, certaines paires clé-valeur seront supprimées tandis que d'autres seront conservées.

  1. Définissez la longueur de la carte sur 0

La dernière méthode consiste à définir la longueur de la carte sur 0, afin que toutes les valeurs clés dedans, il peut être effacé correctement. L'exemple de code est le suivant :

package main

import "fmt"

func main() {
    m := map[string]int{"a": 1, "b": 2}
    fmt.Println("Before clearing:", m)

    for i := range m {
        delete(m, i)
    }
    m = make(map[string]int, 0)

    fmt.Println("After clearing:", m)
}
Copier après la connexion

Le résultat de sortie est le suivant :

Before clearing: map[a:1 b:2]
After clearing: map[]
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette méthode peut éviter de réallouer de la mémoire et d'éviter l'utilisation de boucles for. Mais il convient de noter qu'avant de définir la longueur de la carte sur 0, nous devons toujours utiliser une boucle for pour supprimer toutes les paires clé-valeur de la carte. Sinon, la carte conservera toujours certaines paires clé-valeur, mais leurs valeurs seront nulles.

Pour résumer, nous pouvons utiliser trois méthodes différentes pour effacer la carte. La meilleure approche dépend de la taille de la carte et des performances de nettoyage requises. Mais quelle que soit la méthode que vous utilisez, vous devez veiller à protéger les données de la carte pour éviter de supprimer accidentellement des paires clé-valeur importantes.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal