从 Go 中的 Map 中获取键的切片
Jay Singh
2023年1月30日
Golang Map 是无序键值对的集合。它被广泛使用,因为它允许使用键快速查找和检索、更新或删除值。
map 中的值不像键一样唯一,可以是任何类型,例如 int、float64、rune、text、pointer、引用类型、map 类型等。
在本教程中,我们将从 Go 中的映射中检索一个键切片。
使用 range
和 append()
从 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]