如何从Go的map中获取键的切片:完整指南
大家好!我最近开始学习Go,遇到了一个看似简单但找不到优雅解决方案的问题。
我有一个用户数据的map:
users := map[int]string{
1: "Alice",
2: "Bob",
3: "Charlie",
4: "Diana",
}
我需要以[]int切片的形式获取所有用户ID(键)。在Python中,我只需写list(users.keys()),但Go中没有这样简单的函数。
我尝试了以下方法:
var keys []int
for key := range users {
keys = append(keys, key)
}
这确实有效,但我觉得太冗长了。是否有内置函数或更惯用的方式?我特别关心:
- 键的顺序——是否总是随机的?
- 如何处理大型map(数百万条记录)?
- 能否用一行代码实现?
感谢提供示例。