栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Go真的没有缩小片段的方法吗?那是个问题吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go真的没有缩小片段的方法吗?那是个问题吗?

实际上执行切片的重新分配:

a = append([]T(nil), a[:newSize]...) // Thanks to @Dijkstra for pointing out the missing ellipsis.

如果它确实将

newSize
元素复制到新的内存位置,或者是否像realloc(3)一样进行实际
大小调整,则由编译器完全决定。您可能想调查当前的状态,如果还有改进的余地,也许会提出一个问题。

但是,这可能是微优化。性能增强的第一个来源几乎总是在于选择更好的算法和/或更好的数据结构。使用巨大的向量最终只保留一些项可能不是内存消耗的最佳选择。

编辑:以上只是部分正确。在一般情况下,编译器 无法 导出是否有其他指向切片支持数组的指针。因此,重新分配不适用。上面的代码段实际上可以 保证 执行“
newSize”元素的副本。抱歉造成任何混乱。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号