在 Golang 中,可以使用以下方式来取 map 的部分值:
- 使用 for range 循环遍历 map,并根据 key 取出对应的 value。
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "c"}
result := make(map[string]int)
for k, v := range m {
for _, key := range keys {
if k == key {
result[k] = v
}
}
}
fmt.Println(result) // Output: map[a:1 c:3]
- 直接通过 key 取出对应的 value。
m := map[string]int{"a": 1, "b": 2, "c": 3}
keys := []string{"a", "c"}
result := make(map[string]int)
for _, key := range keys {
if val, ok := m[key]; ok {
result[key] = val
}
}
fmt.Println(result) // Output: map[a:1 c:3]
注意,在第二种方式中,需要判断是否存在该 key。如果不存在,则不会将其加入到新的 map 中。