Ein Slice von Schlüsseln aus einer map in Go erhalten

Jay Singh 30 Januar 2023
  1. Verwenden Sie range und append(), um ein Stück Schlüssel von einer map in Go zu erhalten
  2. Verwenden Sie die MapKeys-Funktion, um ein Stück Schlüssel von einer map in Go zu erhalten
Ein Slice von Schlüsseln aus einer map in Go erhalten

Golang Map ist eine Sammlung von ungeordneten Schlüssel-Wert-Paaren. Es wird häufig verwendet, da es schnelle Suchen und Werte ermöglicht, die mithilfe von Schlüsseln abgerufen, aktualisiert oder gelöscht werden.

Werte in Maps sind nicht eindeutig wie Schlüssel und können jeden beliebigen Typ haben, z. B. int, float64, rune, text, pointer, reference type, map type, etc.

In diesem Tutorial rufen wir ein Stück Schlüssel von einer map in Go ab.

Verwenden Sie range und append(), um ein Stück Schlüssel von einer map in Go zu erhalten

Wir beginnen in diesem Beispiel mit einer Zuordnung von Zeichenfolgenschlüsseln und Zeichenfolgenwerten. Dann veranschaulichen wir, wie Sie nur die Schlüssel in einem separaten String-Slice abrufen.

Wir erhalten die Schlüssel aus der Map, indem wir range verwenden und sie mit append() an ein leeres Slice anhängen.

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)
}

Ausgabe:

KEYS SLICE - [animal Car Metal]

Verwenden Sie die MapKeys-Funktion, um ein Stück Schlüssel von einer map in Go zu erhalten

Um ein Array von Schlüsseln vom Typ []Value zu erhalten, verwenden wir die MapKeys-Methode aus dem Reflect-Paket.

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)
}

Ausgabe:

Keys Slice - [animal Car Metal]

Verwandter Artikel - Go Map