Obtenez une tranche de clés à partir d'une carte en Go

Jay Singh 30 janvier 2023
  1. Utilisez range et append() pour obtenir une tranche de clés à partir d’une carte en Go
  2. Utilisez la fonction MapKeys pour obtenir une tranche de clés à partir d’une carte en Go
Obtenez une tranche de clés à partir d'une carte en Go

Golang Map est une collection de paires clé-valeur non ordonnées. Il est largement utilisé car il permet des recherches rapides et des valeurs récupérées, mises à jour ou supprimées à l’aide de clés.

Les valeurs dans les cartes ne sont pas uniques comme les clés et peuvent être de n’importe quel type, comme int, float64, rune, texte, pointeur, type de référence, type de carte, etc.

Dans ce didacticiel, nous allons récupérer une tranche de clés d’une carte dans Go.

Utilisez range et append() pour obtenir une tranche de clés à partir d’une carte en Go

Nous commençons avec une carte de clés de chaîne et de valeurs de chaîne dans cet exemple. Ensuite, nous illustrons comment récupérer uniquement les clés dans une tranche de chaîne distincte.

Nous obtenons les clés de la carte en utilisant range et en les attachant à une tranche vide en utilisant append().

package main

import "fmt"

func main() {
    m := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := []string{}
    for key, _ := range m {
        keys = append(keys, key)
    }

    fmt.Println("KEYS SLICE -", keys)
}

Production:

KEYS SLICE - [animal Car Metal]

Utilisez la fonction MapKeys pour obtenir une tranche de clés à partir d’une carte en Go

Pour acquérir un tableau de clés de type []Value, nous utilisons la méthode MapKeys du package reflect.

package main

import (
    "fmt"
    "reflect"
)

func main() {
    a := map[string]string{
        "animal": "Cat",
        "Car":    "GMC",
        "Metal":  "Gold",
    }

    keys := reflect.ValueOf(a).MapKeys()

    fmt.Println("Keys Slice -", keys)
}

Production:

Keys Slice - [animal Car Metal]

Article connexe - Go Map