Maison > développement back-end > Golang > Comment extraire efficacement une tranche de valeurs d'une Go Map ?

Comment extraire efficacement une tranche de valeurs d'une Go Map ?

Mary-Kate Olsen
Libérer: 2024-11-15 06:50:03
original
981 Les gens l'ont consulté

How to Efficiently Extract a Slice of Values from a Go Map?

Obtention d'une tranche de valeurs à partir d'une carte dans Go

Étant donné une carte, il existe plusieurs façons de récupérer efficacement une tranche de ses valeurs . Examinons ces approches :

  1. Utilisation d'une boucle :

    Le code original fourni capture les valeurs d'une carte à l'aide d'une boucle pour les attribuer à une tranche. Bien que cette méthode soit couramment utilisée, elle peut s'avérer fastidieuse et nécessite de gérer manuellement la taille de la tranche.

  2. Utiliser make :

    La fonction make de Go vous permet de créer une tranche avec une longueur et une capacité spécifiques. Vous pouvez utiliser make pour allouer une tranche d'une capacité égale à la longueur de la carte, en vous assurant que la tranche dispose de suffisamment d'espace :

    m := make(map[int]string)
    
    m[1] = "a"
    m[2] = "b"
    m[3] = "c"
    m[4] = "d"
    
    v := make([]string, 0, len(m))  // Initialize slice with capacity equal to map length
    
    for _, value := range m {
       v = append(v, value)
    }
    Copier après la connexion

    En initialisant la capacité de la tranche à la longueur de la carte, vous optimisez les performances en évitant les réallocations lorsque vous ajoutez des valeurs à la tranche.

  3. Utilisation de l'ajout :

    La fonction d'ajout fournit un moyen pratique d'ajouter des valeurs à une tranche. Il alloue et/ou étend automatiquement la tranche si nécessaire, garantissant qu'elle dispose d'une capacité suffisante.

    m := make(map[int]string)
    
    m[1] = "a"
    m[2] = "b"
    m[3] = "c"
    m[4] = "d"
    
    v := []string{}  // Initialize empty slice
    
    for _, value := range m {
       v = append(v, value)
    }
    Copier après la connexion

    Dans cet exemple, nous commençons avec une tranche vide et utilisons append pour y ajouter des valeurs de manière itérative.

Ces approches offrent des moyens efficaces de récupérer une tranche de valeurs d'une carte dans Go, vous permettant de choisir la méthode la plus appropriée en fonction de vos besoins spécifiques.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal