首页 > 后端开发 > Golang > 如何有效地从 Go Map 中切出键?

如何有效地从 Go Map 中切出键?

Patricia Arquette
发布: 2024-12-27 17:50:11
原创
515 人浏览过

How Can I Efficiently Slice Keys from a Go Map?

在 Go 中从 Map 中切片键

问题:

有没有更有效的方法从映射中获取键的切片去吗?

目前,常见的方法是迭代地图,将键复制到切片中:

i := 0
keys := make([]int, len(mymap))
for k := range mymap {
    keys[i] = k
    i++
}
登录后复制

答案:

使用具有指定切片容量的 make 函数可以通过消除对重新分配:

keys := make([]int, len(mymap))

i := 0
for k := range mymap {
    keys[i] = k
    i++
}
登录后复制

这种方法稍微更简洁,并且消除了与附加到切片相关的开销。在包含大量键的映射的测试中,它被证明比使用append函数快20%。

虽然make函数设置了切片的容量,但值得注意的是append仍然会产生一些检查每个附加是否已达到容量的额外开销。在这种情况下,直接分配数组成员可以提高性能。

以上是如何有效地从 Go Map 中切出键?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板