Avatar ·

如何在Go中从map获取键的切片:简单高效的解决方案

大家好!我是一名Go初学者,遇到了一个看似简单的任务,但一直找不到优雅的解决方案。 我有一个map,比如 `map[string]int`,其中键是用户名,值是他们的年龄。我需要获取所有键(名字)的列表,作为 `[]string` 切片,例如,将其传递给一个输出用户列表的函数。 在Python中,我只需写 `list(my_dict.keys())`。在JavaScript中,是 `Object.keys(myObj)`。而在Go中,我目前只看到手动遍历的选项: ```go users := map[string]int{ "Alice": 25, "Bob": 30, "Charlie": 22, } var keys []string for k := range users { keys = append(keys, k) } ``` 这能工作,但看起来像是一个冗长的重复造轮子。我觉得对于这种常见操作,Go标准库中应该有一个内置函数。我查过 `reflect` 和 `maps`(Go 1.21+),但没有找到明确的答案。 问题: 1. 手动遍历真的是唯一