从 Go 中的 Map 中获取键的切片

Jay Singh 2023年1月30日 2022年4月22日
  1. 使用 rangeappend() 从 Go 中的映射中获取键切片
  2. 使用 MapKeys 函数从 Go 中的映射中获取键切片
从 Go 中的 Map 中获取键的切片

Golang Map 是无序键值对的集合。它被广泛使用,因为它允许使用键快速查找和检索、更新或删除值。

map 中的值不像键一样唯一,可以是任何类型,例如 int、float64、rune、text、pointer、引用类型、map 类型等。

在本教程中,我们将从 Go 中的映射中检索一个键切片。

使用 rangeappend() 从 Go 中的映射中获取键切片

在此示例中,我们从字符串键和字符串值的映射开始。然后我们说明如何仅检索单独字符串切片中的键。

我们通过使用 range 从 map 中获取键,并使用 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)
}

输出:

KEYS SLICE - [animal Car Metal]

使用 MapKeys 函数从 Go 中的映射中获取键切片

要获取类型为 []Value 的键数组,我们使用 reflect 包中的 MapKeys 方法。

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

输出:

Keys Slice - [animal Car Metal]

相关文章 - Go Map